let rec recurse n z f = if n = 0 then z else f n (recurse (n - 1) z f) let factorielle n = recurse n 1 ( * ) let () = let n = int_of_string Sys.argv.(1) in Printf.printf "%d! = %d\n" n (factorielle n)