Вычислить сумму произведения элементов двух списков - Lisp

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

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

вычислить сумму произведения элементов двух списков.

Решение задачи: «Вычислить сумму произведения элементов двух списков»

textual
Листинг программы
(defun task (l1 l2)
  (iter (for i1 in l1)
        (for i2 in l2)
        (summing (* i1 i2))))
 
==> task
 
(task '(1 2 3 4) '(1 2 3 4))
 
==> 30

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

В коде определена функция с именем task. Она принимает два аргумента типа список (l1 и l2). Внутри функции используется два вложенных цикла for. Первый цикл идет по элементам первого списка (l1), а второй — по элементам второго списка (l2). Для каждой пары элементов выполняется операция умножения, результат которой добавляется к переменной sum. В конце функции возвращается значение переменной sum. При вызове функции task передаются два списка: '(1 2 3 4) и '(1 2 3 4). Первый список содержит четыре элемента, каждый из которых равен 1, 2, 3 и 4. Второй список также содержит четыре элемента, каждый из которых равен 1, 2, 3 и 4. Вложенные циклы проходят по всем элементам списков. Для каждой пары элементов выполняется операция умножения: 1 1 = 1, 1 2 = 2, 2 1 = 2, 2 2 = 4, 3 1 = 3, 3 2 = 6, 3 3 = 9, 4 1 = 4, 4 2 = 8, 4 3 = 12, 4 * 4 = 16. Суммируя все полученные значения, получаем 1 + 2 + 2 + 4 + 2 + 6 + 6 + 9 + 4 + 8 + 12 + 16 = 60. Таким образом, при вызове функции task со списками '(1 2 3 4) и '(1 2 3 4) будет возвращено значение 60.

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


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

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

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