Реферат: Функції модифікатора
$ (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 <atom>. Повертає список символів, P - імена кожного з яких складаються з друкованих символів атома <atom>. Якщо <atom> не є атомом, то повертається NIL.
(DEFUN UNPACK (ATM)
((SYMBOLP ATM) (список символів, P - імена яких складаються з друкованих символів атома ATM) )
((NUMBERP ATM) (список символів, P - імена яких складаються з цифр атома ATM) ) )
$ (UNPACK ‘abcde) $ (UNPACK 216) $ (SETQ *PRINT-BASE 16*)
(a b c d e) (\2 \1 \6) $ (UNPACK 216)
(\0 \D \8)
2. PACK <list>. Повертає символ, P - ім’я якого складіється зі счеплених P - імен атомів у списку <list>. Для визначення P - імен чисел використову- ється поточна система числення. Функція PACK завжди повертає символ, навіть якщо P - ім‘я складається тільки з однозначних чисел.
(DEFUN PACK (LST)
((ATOM LST) "")
((SYMBOLP (CAR LST)) (символ, P - ім’яякогоскладаєтьсяз P - імені (CAR LST) , сполученез (PACK (CDR LST))) )
((NUMBERP (CAR LST)) (символ, P - ім’яякогоскладаєтьсязцифрудрукованомупредставлені (CAR LST), сполученез (PACK (CDR LST))) )
(PACK (CDR LST)) )
$ (PACK ‘(a b c d e) $ (PACK ‘(\7 \3 \1) $ (PACK ‘(Q \7 \A \1))
abcde |731| Q7A1