Функция суммы попарных слагаемых двух списков - Lisp

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

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

Помогите пожалуйста! Нужно написать функцию с использованием макросов и функционалов, которая вычисляет сумму попарных слагаемых двух целочисленных списков.

Решение задачи: «Функция суммы попарных слагаемых двух списков»

textual
Листинг программы
(defun super-sum (&rest s)
  (apply '+ (apply 'append s)))
 
==> super-sum
 
(super-sum '(1 2 3) '(4 5 6) '(7 8 9))
 
==> 45

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

В коде определена функция с именем super-sum. Функция принимает произвольное количество аргументов, которые должны быть списками. Внутри функции происходит следующее:

  1. Аргументы функции передаются в оператор APPLY, который применяет функцию 'append к каждому аргументу. Результатом этого действия является список, объединяющий все переданные аргументы.
  2. Результат операции APPLY передается в оператор APPLY, который применяет функцию '+' к каждому элементу списка. Результатом этого действия является сумма всех элементов списка.
  3. Результат операции APPLY возвращается в качестве результата работы функции SUPER-SUM. Следующий фрагмент кода демонстрирует использование функции SUPER-SUM: (super-sum '(1 2 3) '(4 5 6) '(7 8 9)) В этом фрагменте кода функция SUPER-SUM применяется к трём спискам: '(1 2 3), '(4 5 6) и '(7 8 9). Результатом выполнения этого выражения будет число 45.

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


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

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

9   голосов , оценка 4.111 из 5
Похожие ответы