Реферат: Функції модифікатора
|2356| \3
3. PACK* <atom1> ... <atomN>. Повертає символ, P-ім’я якого складається зі счеплених P-імен атомів. Ця функція є вузькою версією PACK, оскільки вона працює не зі списком атомів, а з будь-якою кількістю атомів.
(DEFUN PACK* LST
(PACK LST) )
$ (PACK* ‘a ‘b ‘c) $ (PACK 4 ‘QW ‘T)
ABC |4QWT|
4. CHAR <atom> <n>. Якщо <atom> — символабочисло, а <n> — невід’ємнецілечисло, функція CHAR повертаєсимвол, P - ім’яякогоє n-ийсимвол P - імені <atom>, причомувідліксимволівпочинаєтьсяз 0. Функціяповертає NIL якщо <n> ненольінедодатнецілечисло, абоякщо P - ім’яатома <atom> міститьменьшніж n символів.
(DEFUN CHAR (atm n)
((ATOM atm) (NTH n (UNPACK atm)) ) )
$ (CHAR ‘ABCDE 3) $ (CHAR 12345 0) $ (CHAR ‘qwe 8)
D \1 NIL
5. SUBSTRING <atom> <n> <m>. Якщо <atom> — символабочисло, <n> та <m> — невід’ємніцілі, n£m, тофункція SUBSTRING повертаєсимвол, P - ім’яякогоскладаєтьсязсимволів P - іменатомапочинаючиз n-огодо m-ого, причомувідліксимволівпочинаєтьсяз 0. Якщо n£0, то вважається що 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)
CDE DEFG
$ (SUBSTRING 123456 3) $ (SUBSTRING ‘ABCDEFG 0 3)
|456| ABCD
6. STRING<pr> <atom1> <atom2> <flag> , де <pr> - будь-якийпредикат <, >, <=, >=, =, /=. Відбуваєтьсялексикографічнепорівняння P - іменатомівзгіднозпредикатом <pr>. Якщофлагдорівнює NIL, порівняннявідбуваєтьсязврахуваннямрегістру. Якщофлагнезадано, вінвважаєтьсярівним T. Функція STRING= повертаєабо T або NIL. Інші функції повертають або NIL, або номер позиції першого символа, починаючи з якого P - імена не співпадають.
$ (STRING= ‘ABC ‘ABC) $ (STRING ‘ABC ‘ABC NIL)
T T
$ (STRING= ‘Abc ‘AbC) $ (STRING= ‘Abc ‘AbC NIL)
T NIL
$ (STRING= |100| 100) $ (STRING< ‘ABC ‘AZC)
T 1
$ (STRING< ‘AZC ‘ABC) $ (STRING>= ‘123 ‘123)
NIL 3