Scheme では、基本的な 'if' コマンドを次のように変更しました。
(define (modified-if predicate then-clause else-clause)
(if predicate
then-clause
else-clause))
次に、if の修正版を使用して簡単な階乗生成プログラムを定義しました。
(define (factorial n)
(modified-if (= n 0)
(* n (factorial (- n 1)))))
ここで、上記の関数を呼び出すと、無限ループに入ります。なぜそれが起こるのですか?