Функция, которая суммирует чётные числа - Lisp
Формулировка задачи:
Написать функцию которая суммирует парные чётные числа
Решение задачи: «Функция, которая суммирует чётные числа»
textual
Листинг программы
(defn task (l) (foldl (lambda (n a) (+ (cond (= 0 (mod n 2)) n 0) a)) 0 l))
Объяснение кода листинга программы
В данном коде написана функция с именем task, которая принимает в качестве аргумента список чисел l. Внутри функции используется операция foldl, которая позволяет применить указанную функцию (в данном случае это lambda-функция с именем n) к каждому элементу списка l. В этой lambda-функции происходит проверка на чётность числа n с помощью оператора mod, который возвращает остаток от деления. Если число n чётное, то оно добавляется к аккумулятору (переменной a). Если число n нечётное, то оно пропускается. В конце операции foldl аккумулятор (переменная a) содержит сумму всех чётных чисел из списка l. Функция возвращает значение аккумулятора.