Сформирова из списка список-результат: первый эл-т — сумма всех элементов, второй — сумма хвоста и т.д. - Lisp

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

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

Снова нужна помощь добрых людей! Функция из исходного списка формирует список-результат: первый элемент — сумма всех элементов, второй — сумма элементов хвоста и т.д. Все функции нужно сделать, используя примитивные функции, типо типа car, cdr, без использования lambda и прочих сложных функций.

Решение задачи: «Сформирова из списка список-результат: первый эл-т — сумма всех элементов, второй — сумма хвоста и т.д.»

textual
Листинг программы
  1. (defun task (lst)
  2.   (cond ((null lst) nil)
  3.         (t (cons (apply '+ lst) (task (cdr lst))))))
  4.  
  5. ==> TASK
  6.  
  7. (task '(1 2 3))
  8.  
  9. ==> (6 5 3)

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

В коде определена функция TASK, которая принимает в качестве аргумента список lst. Если lst равен null, то возвращается nil. В противном случае, к голове списка (первому элементу) добавляется результат вычисления всех элементов списка, а затем рекурсивно вызывается функция TASK для хвоста списка (cdr lst). Пример использования функции TASK: (task '(1 2 3)) Результат выполнения: (6 5 3)

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


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

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

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

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

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

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