階乗の計算の場合をみてみましょう。自然数 n に対して、 その階乗を返す関数 fact(n) を定義します。
fact (n) = 1 * 2 * .... * nでも、プログラム中に .... なんて 書くわけにもいきません。
fact (1) = 1 fact (n) = fact(n-1) * n ; for n > 1として定義することができます。
これを Scheme の program として記述すると以下のようになります。
(define (fact n) (if (> n 1) (* n (fact (- n 1))) 1))関数の意味を、素直に表現しているだけです。
99.9.29/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp