Précédent Index Suivant



Impératif/Fonctionnel


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;;
les paramètres n et r sont analogues à i et !res


Précédent Index Suivant