LINUX.ORG.RU

Сообщения nixorn

 

Интересное поведение eLisp

Форум — Development

Хрестоматийный пример факториала на 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- число)))))               ; выражение-следующего-вызова

Разные в функциях только арифметические операции умножение и сложение. Подскажите пожалуйста причину такого поведения. А то как то...забавно что-ли.

 , , ,

nixorn
()

RSS подписка на новые темы