5. SUBSTRING . Якщо — символ або число, та — невід’ємні цілі, nm, то функція SUBSTRING повертає символ, P - ім’я якого складається з символів P - імен атома починаючи з n-ого до m-ого, причому відлік символів починається з 0. Якщо n0, то вважається що n=0. Якщо m не вказано, або меньше за 0 чи більше за кількість символів в P - імені атома, m вважається рівним кількості символів в P - імені атома. Якщо n>m повертається NIL.
(DEFUN SUBSTRING (atm n m)
((AND (ATOM atm) (INTEGERP n))
((MINUSP n) (SUBSTRING atm 0 m))
(PACK (SUBLIST (UNPACK atm) n m))
$ (SUBSTRING ‘ABCDEFG 2 4)$ (SUBSTRING ‘ABCDEFG 3)
CDEDEFG
$ (SUBSTRING 123456 3)$ (SUBSTRING ‘ABCDEFG 0 3)
|456|ABCD
6. STRING , де - будь-який предикат <, >, <=, >=, =, /=. Відбувається лексикографічне порівняння P - імен атомів згідно з предикатом . Якщо флаг дорівнює NIL, порівняння відбувається з врахуванням регістру. Якщо флаг не задано, він вважається рівним T. Функція STRING= повертає або T або NIL. Інші функції повертають або NIL, або номер позиції першого символа, починаючи з якого P - імена не співпадають.
$ (STRING= ‘ABC ‘ABC)$ (STRING ‘ABC ‘ABC NIL)
TT
$ (STRING= ‘Abc ‘AbC)$ (STRING= ‘Abc ‘AbC NIL)
TNIL
$ (STRING= |100| 100)$ (STRING< ‘ABC ‘AZC)
T1
$ (STRING< ‘AZC ‘ABC)$ (STRING>= ‘123 ‘123)
NIL3
7. STRING-UPCASE . Повертає символ, P - ім’я якого співпадає з P - іменем атома, але всі його літери перетворюються в великі. Якщо не є атомом, повертається NIL.
$ (STRING-UPCASE “Lisp Is A Language”)$ (STRING-UPCASE ‘(a s d))
|LISP IS A LANGUAGE|NIL
8. STRING-DOWNCASE . Повертає символ, P - ім’я якого співпадає з P - іменем атома, але всі його літери перетворюються в маленькі. Якщо не є атомом, повертається NIL.