再帰的な関数

再帰的な関数と定義するには rec をつける。

 # let rec fact n = if n = 0 then 1 else n * fact (n - 1);;
 val fact : int -> int = <fun>
 # fact 3;;
 - : int = 6
 # fact 6;;
 - : int = 720


あまり大きな整数は表現できないらしい。

 # fact 30;;
 - : int = -738197504