Функції відбору
(SETQ TEST 'EQL) ) )
((FUNCALL TEST OBJ (CAR LST))
(count-aux OBJ (CDR LST) TEST (ADD1 COUNTER)) )
(count-aux OBJ (CDR LST) TEST COUNTER) )
$ (COUNT 'DOG '(CAT DOG COW PIG DOG ANT))
2
$ (COUNT '5 '(4 5 6 7 8) <)
3
$ (COUNT-IF 'ODDP '(3 4 5 6 7))
3
7. (FIND object list test). Виконує лінійний пошук у списку list того елемента, для якото ознака перевірки з об’єктом object за тестом test не дорівнює NIL. Якщо тест-аргумент дорівнює NIL або не задан, FIND використовує EQL-тест.
(FIND-IF test list). Досліджує список list для пошуку елемента, для якого ознака перевірки за тестом test не дорівнює NIL.
Для обох функцій, якщо елемент, що задовольняє тесту, знайдено, даний елемент видається, в іншому випадку повертається NIL.
(DEFUN FIND (OBJ LST TEST)
( (ATOM LST) NIL)
( ((NULL TEST)
(SETQ TEST 'EQL) ) )
( (FUNCALL TEST JBJ (CAR LST))
(CAR LST) )
(FIND OBJ (CDR LST) TEST) )
$ (FIND 'EAT '(CORN WHEAT OATS RICE) 'FINDSTRING)
WHEAT
$ (FIND-IF '(LAMBDA (X) (MINUSP (CDR X))) '((X . 3) (Y . 0) 9Z . -2/3)))
(Z . -0.6666666)
8. (POSITION object list test). Виконує лінійний пошук у списку list того елемента, для якого ознака порівняння з об’єктом object за тестом test не є NIL. Якщо тест-аргумент дорівнює NIL або не задан, POSITION використовує EQL-тест.