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