Функції відбору
(DEFUN NTH (N LST)
((ATOM (NTHCDR N LST)) NIL)
(CAR (NTHCDR N LST)) )
$ (NTH 0 '(A B C D))$ (NTH 4 '(A B C D))
ANIL
$ (NTH 3 '(A B C D))$ (NTH 2 '(A B . C))
DNIL
5. (SUBLIST list n m). Якщо n та m - невід’ємні цілі та n<=m, функція копіює та видає з n-го по m-ий елементи списку list, де CAR - елемент списку є нульовий елемент. Якщо m - не ціле число або більше чи рівне довжині списку, m приймається як величина на одиницю менша за довжину списку. Якщо n - не ціле число, від’ємне число або n > m, SUBLIST повертає NIL.
(DEFUN SUBLIST (LST N M)
((INTEGERP N)
((INTEGERP M)
(FIRST (ADD1 (-M N)) (NTHCDR N LST)) )
(NTHCDR N LST) ) )
$ (SUBLIST '(A B C D E F) 2 4)$ (SUBLIST '(A B C D E F) 0 3)
(C D E)(A B C D)
$ (SUBLIST '(A B C D E F) 2 2)$ (SUBLIST '(A B C D E F) 2)
(C)(C D E F)
6. (COUNT object list test). Повертає кількість елементів у списку list, для яких ознака при порівнянні з об’єктом object за тестом test не дорівнює NIL. Якщо тест - аргумент не задано або дорівнює NIL, COUNT використовує EQL - тест.
(COUNT-IF test list). Повертає кількість елементів у списку list, для яких ознака перевірки за тестом не дорівнює NIL.
(DEFUN COUNT1 (OBJ LST TEST)
(count-aux OBJ LST TEST 0) )
(DEFUN count-aux (OBJ LST TEST COUNTER)
((ATOM LST) COUNTER)
( ((NULL TEST)