Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (* 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) *)
- let rec esiste_divisore x = function
- [] -> false
- | y::rest -> x mod y = 0 || esiste_divisore x rest
- (* p s sono le due liste *)
- let compito p s =
- (* 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 *)
- let rec aux p_restanti s =
- match (p_restanti,s) with
- ([],_) -> true
- | (x::restx,y::resty) -> esiste_divisore x s && aux restx s
- in aux p s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement