LINUX.ORG.RU

История изменений

Исправление Gentooshnik, (текущая версия) :

Ещё ошибка. Надо (null lst), а не (null (car lst)), иначе суммирование заглохнет на первом nil значении в списке. Хотя, оно и так заглохнет из-за численного +. А канонично рекурсивное суммирование делать как-то так:

(defun sum-list (lst &optional (n 0))
  (if (null lst)
      n
      (progn
        (incf n (car lst))
        (sum-list (cdr lst) n))))

Исходная версия Gentooshnik, :

Ещё ошибка. Надо (null lst), а не (null (car lst)), иначе суммирование заглохнет на первом nil значении в списке. Хотя, оно и так заглохнет из-за численного +. А канонично рекурсивное суммирование делать как-то так:

(defun sum-list (lst &optional (n 0))
  (if (null lst)
      n
      (progn
        (incf n (car lst))
        (sum-list (cdr lst) n))))