x y;; let x = 3 in let y = 2 in x y;; let x = fun _ -> 3 in let y = 2 in x y;; fun x -> x;; fun x y -> x;; fun x -> fun y -> x;; fun x -> x x;; (fun x -> x) x;; let x = 3;; (fun x -> x) x;; (fun x -> x + x) 3;; (fun x -> x + (fun x -> x) 2) 3;; [1;2;3;4];; 3 + 5;; fun f x -> x;; fun f x -> f x;; fun f x -> f (f x);; fun f x -> f (f (f x));; (fun f x -> f (f (f x))) succ 0;; (fun f x -> f (f (f x))) (fun y -> y^"|") "";; (fun f x -> f (f (f x))) (fun y -> 1::y) [];; let rec church n = fun f x -> if n = 0 then x else f (church (n-1) f x);; curch 3;; church 3;; church 3 succ 0;; let n3 = church 3;; n3 succ 0;; n3;; let add = fun m n f x -> m f (n f x);; add (church 3) (church 6);; add (church 3) (church 6) succ 0;;