Modificación de la expresión básica if en esquema. ¿Por qué entra en un bucle infinito?
En Scheme, modifiqué el comando básico "if" como:
(define (modified-if predicate then-clause else-clause)
(if predicate
then-clause
else-clause))
Y luego definí un programa generador de factorial simple usando la versión modificada de if:
(define (factorial n)
(modified-if (= n 0)
(* n (factorial (- n 1)))))
Ahora, cuando llamo a la función anterior, entra en un bucle infinito. ¿Por qué sucede eso?