Задача на функционал - Lisp
Формулировка задачи:
Реализовать функционал, который проверяет, удовлетворяет ли хотя бы один элемент списка заданному предикату.
P.S. Прошу помощи.)
Решение задачи: «Задача на функционал»
textual
Листинг программы
(defun for-any (p lst) (apply 'or (mapcar p lst))) ==> for-any (for-any 'evenp '(1 3 5 7 9)) ==> NIL (for-any 'evenp '(1 3 5 4 7 9)) ==> T
Объяснение кода листинга программы
В коде определена функция for-any с двумя аргументами p и lst.
Функция for-any использует функцию apply с аргументом or, чтобы применить указанную функцию p к каждому элементу списка lst. Если хотя бы один элемент удовлетворяет функции p, то возвращается T, иначе возвращается NIL.
При вызове функции for-any с аргументами 'evenp' и '(1 3 5 7 9)' возвращается NIL, так как ни одно число не является чётным.
При вызове функции for-any с аргументами 'evenp' и '(1 3 5 4 7 9)' возвращается T, так как число 4 является чётным.