mkakhの部屋

OCamlでの階乗の書き方

シンプルな実装

let rec fact = function 
 | 0 -> 1
 | x -> x * fact (x-1);;

末尾再帰による実装

let fact n =
  let rec f n = function
    | 0 -> n
    | x -> f (n*x) (x-1)
  in f 1 n;;
Tweet