let fact = function n -> let res = ref 1 in begin for i = 1 to n do res := !res * i done ; !res end;; |
let rec fact = function | 0 -> 1 | n -> n * (fact (n-1));;Consommation de pile ! let fact = let rec f_r = fun r n -> match n with | 0 -> r | _ -> f_r (n*r) (n-1) in function n -> f_r 1 n;; |