Функция суммы попарных слагаемых двух списков - 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. Функция принимает произвольное количество аргументов, которые должны быть списками. Внутри функции происходит следующее:
- Аргументы функции передаются в оператор APPLY, который применяет функцию 'append к каждому аргументу. Результатом этого действия является список, объединяющий все переданные аргументы.
- Результат операции APPLY передается в оператор APPLY, который применяет функцию '+' к каждому элементу списка. Результатом этого действия является сумма всех элементов списка.
- Результат операции 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д