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;;
|