Обpобка масивiв
D\1NIL
5. SUBSTRING atom n m. Якщо atom - символ або число, n та m - невiд'ємнi цiлi, n<=m, то функцiя SUBSTRING повертає символ, P - iм'я якого складається з символiв P - iмен атома починаючи з n-ого до m-ого, причому вiдлiк символiв починається з 0. Якщо n<=0, то вважається що n=0. Якщо m не вказано, або меньше за 0 чи бiльше за кiлькiсть символiв в P - iменi атома, m вважається рiвним кiлькостi символiв в P - iменi атома. Якщо 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|ABCD6. STRINGpr atom1 atom2 flag, де pr - будь-який предикат <, >, <=, >=, =, /=. Вiдбувається лексикографiчне порiвняння P - iмен атомiв згiдно з предикатом pr. Якщо флаг дорiвнює NIL, порiвняння вiдбувається з врахуванням регiстру. Якщо флаг не задано, вiн вважається рiвним T. Функцiя STRING= повертає або T або NIL. Iншi функцiї повертають або NIL, або номер позицiї першого символа, починаючи з якого P - iмена не спiвпадають.
$ (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 atom. Повертає символ, P - iм'я якого спiвпадає з P - iменем атома, але всi його лiтери перетворюються в великi. Якщо atom не є атомом, повертається NIL.
$ (STRING-UPCASE "Lisp Is A Language")$ (STRING-UPCASE '(a s d))
|LISP IS A LANGUAGE|NIL
8. STRING-DOWNCASE atom. Повертає символ, P - iм'я якого спiвпадає з P - iменем атома, але всi його лiтери перетворюються в маленькi. Якщо atom не є атомом, повертається NIL.