Функция, которая суммирует чётные числа - 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
. Функция возвращает значение аккумулятора.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д