Сформирова из списка список-результат: первый эл-т — сумма всех элементов, второй — сумма хвоста и т.д. - Lisp
Формулировка задачи:
Снова нужна помощь добрых людей!
Функция из исходного списка формирует список-результат: первый элемент — сумма всех элементов, второй — сумма элементов хвоста и т.д.
Все функции нужно сделать, используя примитивные функции, типо типа car, cdr, без использования lambda и прочих сложных функций.
Решение задачи: «Сформирова из списка список-результат: первый эл-т — сумма всех элементов, второй — сумма хвоста и т.д.»
textual
Листинг программы
(defun task (lst) (cond ((null lst) nil) (t (cons (apply '+ lst) (task (cdr lst)))))) ==> TASK (task '(1 2 3)) ==> (6 5 3)
Объяснение кода листинга программы
В коде определена функция TASK, которая принимает в качестве аргумента список lst. Если lst равен null, то возвращается nil. В противном случае, к голове списка (первому элементу) добавляется результат вычисления всех элементов списка, а затем рекурсивно вызывается функция TASK для хвоста списка (cdr lst). Пример использования функции TASK: (task '(1 2 3)) Результат выполнения: (6 5 3)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д