(* Exercice 1 *) (*1)*) () ;; (*2)*) let c2() = 2;; (*3)*) let rien a = ();; (*4)*) let hello() = print_string "Hello World !\n";; (*Exercice 2*) let rec itere f n a = match n with | 0 -> a | _ -> f (itere f (n-1) a);; itere sin 3000 1.;; (* Exercice 3*) (*1) : La fonction List.length retourne la longueur d'une liste.*) let rec longueur liste = match liste with | [] -> 0 | _ -> (longueur (List.tl liste)) + 1;; longueur [1;2;3];; (*2) : La fonction List.map applique une fonction à chaque élément d'une liste.*) let rec mapper f liste = match liste with | [] -> [] | _ -> (f (List.hd liste))::(mapper f (List.tl liste));; mapper sin [1.;2.;3.];; (*3)*) let rec concatener listes = match longueur listes with | 0 -> [] | 1 -> List.hd listes | 2 -> (List.hd listes)@(List.hd (List.tl listes)) | _ -> concatener ([(List.hd listes)@(List.hd (List.tl listes))]@(List.tl (List.tl listes)));; concatener [[1;2;3];[2;1;3];[];[4;5;1;3];[1]];; concatener [];; List.concat [];; (* exercice 4*) let rec recherche_dicho d f a v = let c = (f - d)/2 in if c = 0 then false else if a = v.(c) then true else if a < v.(c) then recherche_dicho d c a v else recherche_dicho c f a v;; let recherche_dichotomique a v = recherche_dicho 0 (Array.length v) a v;; recherche_dichotomique (-5) [|1;2;3;4;5;6;7;8;9;10;5|];; (*Exercice 5*) let est_premier n = (*on prend un n >=2*) let t = ref true in if n = 2 then () else for i = 2 to n/2 do if (n mod i) = 0 then t := false done ; !t;; est_premier 17;; est_premier 14;; (*let est_vrm_premier n = (* on prend aussi un n >=2*) let t = ref true and i = ref 2 in while !i <=(n/2) && !t do if (n mod !i) = 0 then t := false; i := !i + 1 done; !t;;*)