История изменений
Исправление 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))))