Функції відбору
1. (CAR list), (CDR list). Ці функції відбору (селекторні функції) є примітивними функціями, та були розглянуті раніше. Також було показано як утворити похідні від них функції типу CXXXXR, де X {A, D, }, при чому між літерами C та R знаходиться хоча б одна літера A чи D.
2. (LAST list) повертає останній на верхньому рівні cons списку list. Відмітимо, що LAST повертає останній cons, але не останній елемент списку. Якщо список є атом, LAST повертає NIL. Останній елемент можна отримати використанням функції CAR від (LAST list).
(DEFUN LAST (LST)
((ATOM LST) NIL)
((ATOM (CDR LST)) LST)
(LAST (CDR LST)) )
$ (LAST '(A B C D))$ (LAST 'FCO)
(D)NIL
$ (LAST '(A B C . D))$ (CAR (LAST '(A B C)))
(C . D)C
3. (NTHCDR n list). Якщо n - ноль або додатне ціле, функція повертає n-й CDR списку list. NTHCDR повертає NIL, якщо n не є ані 0, ані додатне ціле, або якщо список list має n або меньш елементів.
(DEFUN NTHCDR (N LST)
((ZEROP N) LST)
((AND (INTEGERP N) (PLUSP N))
((ATOM LST) NIL)
(NTHCDR (SUB1 N) (CDR LST)) ) )
$ (NTHCDR 0 '(A B C D))$ (NTHCDR 5 '(A B C D))
(A B C D)NIL
$ (NTHCDR 1 '(A B C D))$ (NTHCDR 2 '(A B . C))
(B C D)C
$ (NTHCDR 2 '(A B C D))
(C D)
4. (NTH n list). Якщо n - ноль або додатне ціле, функція повертає n-й елемент списку list, де CAR списку - нульовий елемент. NTH повертає NIL, якщо n не є ані 0, ані додатне ціле, або якщо список має n або меньш елементів.