let polynome a b c = fun x -> a * x * x + b * x + c let g x y = 2 * x + y let f x = g x x let rec fact n = if n = 0 then 1 else n * fact (pred n) let rec pow2 x = if x = 0 then 1 else 2 * pow2 (x - 1) let rec pow2_log x = if x = 0 then 1 else let y = pow2_log (x / 2) in let carre = y * y in if x mod 2 = 0 then carre else carre * 2 let identite x y = x, y + 1 let compose f g = fun x -> g (f x) let compose f g x = g (f x)