Сумма элементов списка - Lisp (229202)

Узнай цену своей работы

Формулировка задачи:

Подскажите, пожалуйста, в чем ошибка
Листинг программы
  1. (defun sum (list)
  2. ((null list) 0)
  3. (+ (car list)(sum (cdr list))))
  4. (sum '(9 7 5 6 4))
выдает ошибку: Error: Illegal argument in functor position: (NULL LIST) in ((NULL LIST) 0).

Решение задачи: «Сумма элементов списка»

textual
Листинг программы
  1. CL-USER 1 > (defun sum-list (lst)
  2.  (cond ((null lst) 0)
  3.        ((+ (car lst) (sum-list (cdr lst))))))
  4. SUM-LIST
  5.  
  6. CL-USER 2 > (sum-list '(1 2 3 4))
  7. 10

Объяснение кода листинга программы

В данном коде определён функционал для суммы элементов списка.

  1. В первой строке кода определена функция с именем sum-list, которая принимает в качестве аргумента lst — список для вычисления суммы.
  2. В второй строке кода функция проверяет, является ли lst пустым списком. Если это так, то возвращается 0, иначе происходит рекурсивный вызов функции с аргументом (cdr lst), который является хвостом списка без первого элемента.
  3. В третьей строке кода происходит сложение первого элемента списка (car lst) и результат вызова функции (sum-list (cdr lst)).
  4. В последней строке кода функция вызывается с аргументом '(1 2 3 4), который является списком чисел. Возвращается результат вычисления суммы списка, равный 10.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы