Функції модифікатора
(1 2 4 2 1)
6. NREVERSE <список> <об’єкт>. Обертає елементи списку, зчеплених з об’єктом.
$ (NREVERSE ‘(a b c d))$ (NREVERSE ‘(1 2 3 (1 2 3) 4 5 6) ‘(1 2 3))
(d c b a)(6 5 4 (1 2 3) 3 2 1 1 2 3)
7. NBUTLAST <список>
$ (NBUTLAST ‘(a b c d e))$ (NBUTLAST ‘(a b c d e) 3)
(a b c d)(a b)
8. NCONC <список1> <список2> ... <списокN>. Повертається список, який складається з елементів списків — аргументів у вказаному порядку. Відбувається модифікація останніх CDR-елементів списків. Якщо виконати команду (NCONC list list), де list — будь-який список, то результатом буде циркулянтний список, процес побудови якого буде нескінченним.
$ (NCONC ‘(1 2) ‘(3 4) ‘(5 6 7))
(1 2 3 4 5 6 7)
9. SPLIT <список>. Розбиває список на два списки посередині. Значенням списку стає його перша половина. Функція SPLIT повертає другу половину списку.
$ (SETQ a ‘(1 2 3 4 5 6))$ a
$ (SPLIT a)(1 2 3)
(4 5 6)
10. SORT <список> <тест>. Сортуються елементи списку на основі тесту.
$ (SORT ‘(2 5 3 4 1 6 8 9 7) >)
(9 8 7 6 5 4 3 2 1)
4.7. Функції рядків
Функції рядків призначені для роботи з текстами. Вони забезпечують виконання великої кількості операцій над текстовими данними — порівняння, пошуку та перетворення P - імен символів та чисел. P - ім’я числа змінюється у відповідності до поточної системи числення (значення змінної *PRINT-BASE*).
1. UNPACK
(DEFUN UNPACK (ATM)
((SYMBOLP ATM) (список символів, P - імена яких складаються з друкованих символів атома ATM) )