Сумма элементов списка - Lisp (229202)
Формулировка задачи:
Подскажите, пожалуйста, в чем ошибка
выдает ошибку: Error: Illegal argument in functor position: (NULL LIST) in ((NULL LIST) 0).
(defun sum (list) ((null list) 0) (+ (car list)(sum (cdr list)))) (sum '(9 7 5 6 4))
Решение задачи: «Сумма элементов списка»
textual
Листинг программы
CL-USER 1 > (defun sum-list (lst) (cond ((null lst) 0) ((+ (car lst) (sum-list (cdr lst)))))) SUM-LIST CL-USER 2 > (sum-list '(1 2 3 4)) 10
Объяснение кода листинга программы
В данном коде определён функционал для суммы элементов списка.
- В первой строке кода определена функция с именем sum-list, которая принимает в качестве аргумента lst — список для вычисления суммы.
- В второй строке кода функция проверяет, является ли lst пустым списком. Если это так, то возвращается 0, иначе происходит рекурсивный вызов функции с аргументом (cdr lst), который является хвостом списка без первого элемента.
- В третьей строке кода происходит сложение первого элемента списка (car lst) и результат вызова функции (sum-list (cdr lst)).
- В последней строке кода функция вызывается с аргументом '(1 2 3 4), который является списком чисел. Возвращается результат вычисления суммы списка, равный 10.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д