Модификация базового выражения 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)))))
Теперь, когда я вызываю вышеуказанную функцию, она входит в бесконечный цикл. Почему это происходит?