(********* Exercice 1 *********) (********* Exercice 2 *********) [1; 2; 3];; (* a list *) [|'a'; 'b'; 'c'|];; (* an array *) (5, "a", true);; (* a tuple *) object method id = "x" end;; (* an object *) fun x y -> x+y;; (* a function *) let pi = ref 1;; pi := 2;; !pi + !pi;; (* -> 4 *) let f0 = fun x -> (x,x) in let f1 = fun y -> f0 (f0 y) in let f2 = fun y -> f1 (f1 y) in let f3 = fun y -> f2 (f2 y) in let f4 = fun y -> f3 (f3 y) in let f5 = fun y -> f4 (f4 y) in f5 (fun z -> z) (********* Exercice 3 *********) let rec map f l = match l with | [] -> [] | x::xs -> f(x)::(map f xs);; (********* Exercice 4 *********) let f x = x in (f 1, f true);;