Advertisement
Guest User

Untitled

a guest
Feb 16th, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.75 KB | None | 0 0
  1.  
  2. (* la funzione prende in input due elementi: il primo è il numero, il secondo la lista. La lista viene scorsa e si verifica ogni volta se la x è multiplo di y (quindi se y è divisore di x) *)
  3. let rec esiste_divisore x = function
  4.     [] -> false
  5.     | y::rest -> x mod y = 0 || esiste_divisore x rest
  6.  
  7. (* p s sono le due liste *)
  8. let compito p s =
  9.     (* scorro tutti gli elementi della prima lista e applico a ciascuno di essi la funzione esiste_divisore. Viene controllato se x è multiplo di almeno un elemento della lista s che rimane invariata ad ogni ciclo/ricorsione *)
  10.     let rec aux p_restanti s =
  11.         match (p_restanti,s) with
  12.             ([],_) -> true
  13.         | (x::restx,y::resty) -> esiste_divisore x s && aux restx s
  14.        
  15.     in aux p s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement