From: Atsushi Igarashi <.....@sato.kuis.kyoto-u.ac.jp> To: .....@sato.kuis.kyoto-u.ac.jp Subject: report 0, xxxxxx (* Ex. 0.4: 階乗を計算する関数 fact を定義する*) let rec fact n = if n = 0 then 1 (* 0! = 1 *) else n * fact (n-1);; (* n! = n * (n-1)! *) (* 実行例: # fact 5;; - : int = 120 # fact 0;; - : int = 1 *) (* 考察: 階乗の定義を再帰的に見直すことができれば,コーディング自体は 簡単だった.ただし n が負の時は無限ループする. このように入力が適正でない場合に無限ループする,という挙動は 悲しい.エラーメッセージを出して終了とかできると嬉しい. 感想・愚痴: 自分にはどうも let の後の rec を打ち忘れてしまう 癖があるようだ.fact を定義するときに Unbound value fact と言われるとなんだか悔しい. *) (* Ex. 0.5: ..... *) .....