Хрестоматийный пример факториала на eLisp, скопированный отсюда, раздел 16,2. При вызове с передачей положительного численного аргумента возвращает 0:
(defun factorial (integer)
"Compute factorial of INTEGER."
(if (= 1 integer)
1
(* integer
(factorial
(1- integer)))))
А это пример с сайта Алекса Отта. Возвращает то, что надо:
(defun рекурсивный-треугольник (число)
"Возвращает сумму чисел от 1 до ЧИСЛО включительно.
Использует рекурсию."
(if (= число 1) ; рекурсивная-проверка
1 ; then-часть
(+ число ; else-часть
(рекурсивный-треугольник ; рекурсивный вызов
(1- число))))) ; выражение-следующего-вызова
Разные в функциях только арифметические операции умножение и сложение. Подскажите пожалуйста причину такого поведения. А то как то...забавно что-ли.