Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lisp / Filp / LISP10

.TXT
Скачиваний:
22
Добавлен:
15.06.2014
Размер:
19.68 Кб
Скачать
READ [ ] Function

(READ) бзЁвлў Ґв ®¤­® 楫®Ґ ўла ¦Ґ­ЁҐ Ё§ CIS Ё ў®§ўа й Ґв
нЄўЁў «Ґ­в­л© бўп§ ­­л© бЇЁб®Є. Џа ўЁ«м­® б®бв ў«Ґ­­лҐ ўла ¦Ґ­Ёп
б ЁбЇ®«м§®ў ­ЁҐ¬ «ЁЎ® бЇЁбЄ®ўле, «ЁЎ® в®зҐз­ле Ё§®Ўа ¦Ґ­Ё©, «ЁЎ®
Ёе Є®¬ЎЁ­ жЁ© пў«повбп ¤®ЇгбвЁ¬л¬Ё ўе®¤­л¬Ё ¤ ­­л¬Ё ¤«п дг­ЄжЁЁ
READ.
Џа®ЎҐ«м­лҐ бЁ¬ў®«л б¤г¦ в в®«мЄ® ¤«п а §Ја ­ЁзҐ­Ёп бзЁв ­­ле
§­ Є®ў Ё ў Їа®вЁў­®¬ б«гз Ґ дг­ЄжЁҐ© READ ЁЈ­®аЁаговбп.
ђ §Ја ­ЁзЁвҐ«м­лҐ бЁ¬ў®«л ¬®Јгв а бб¬ ваЁў вмбп Є Є з бвм
§­ Є®ў, бзЁвлў Ґ¬ле READ. Џа®бв®© а §Ја ­ЁзЁвҐ«м­л© бЁ¬ў®«
®ЇаҐ¤Ґ«пҐв Ја ­Ёжл н«Ґ¬Ґ­в  б«Ґ¤го饣® ­ҐЇ®б।б⢥­­® §  ­Ё¬.
‘®бв ў­®© а §Ја ­ЁзЁвҐ«м­л© бЁ¬ў®« ®ЇаҐ¤Ґ«пҐв Ја ­Ёжл н«Ґ¬Ґ­в 
¬Ґ¦¤г ­Ё¬ Ё б«Ґ¤гойЁ¬ б®бв ў­л¬ а §Ја ­ЁзЁвҐ«м­л¬ бЁ¬ў®«®¬.
Џа®бв®© аў§Ја ­ЁзЁвҐ«м­л© бЁ¬ў®« ¬®¦Ґв ЁбЇ®«м§®ў вмбп ¤«п
ўЄ«о祭Ёп Їа®бвле Ё б®бв ў­ле а §Ја ­ЁзЁвҐ«м­ле бЁ¬ў®«®ў ў
н«Ґ¬Ґ­вл, Ја ­Ёжл Є®в®але ®ЇаҐ¤Ґ«Ґ­л б®бв ў­л¬Ё
а §Ја ­ЁзЁвҐ«м­л¬Ё бЁ¬ў®« ¬Ё. Џа®бвл¬ а §Ја ­ЁзЁвҐ«м­л¬ бЁ¬ў®«®¬
пў«пҐвбп бЁ¬ў®« "\", б®бв ў­л¬ - бЁ¬ў®« "|".
Њ Єа®бЁ¬ў®«л ўл§лў ов бў®о дг­ЄжЁо ¬ Єа®®ЇаҐ¤Ґ«Ґ­Ёп Ї® ¬ҐаҐ
Ёе Їа®з⥭Ёп дг­ЄжЁЄ© READ. Њ Єа®бЁ¬ў®«л бЇ®б®Ў­л ­Ґ в®«мЄ®
б®Єа вЁвм з бв® ЁбЇ®«м§гҐ¬лҐ ᥣ¬Ґ­вл Є®¤®ў, ­® Ё Ё§¬Ґ­пвм
ЁбЇ®«м§гҐ¬лҐ ў LISP бЁ­в ЄбЁзҐбЄЁҐ д ©«л ¤«п Ў®«ҐҐ 㤮Ў­®Ј®
ЁбЇ®«м§®ў ­Ёп Ёе ўагз­го. Њ Єа®бЁ¬ў®«л ¬®Јгв Ї®¤а §¤Ґ«пвмбп ­ 
®Ја ­ЁзЁў ойЁҐ, ­Ґ®Ја ­ЁзЁў ойЁҐ Ё ¬ Єа®бЁ¬ў®«л Є®¬¬Ґ­в аЁҐў.
ЋЈа ­ЁзЁў ойЁҐ Ё ­Ґ®Ја ­ЁзЁў ойЁҐ ¬ Єа®бЁ¬ў®«л ўЄ«оз ов ў®
ўе®¤­®© Ї®в®Є Є®з­® ®¤Ё­ ®ЎмҐЄв. Њ Єа®бЁ¬ў®«л Є®¬¬Ґ­в аЁҐў ­Ґ
ўЄ¤оз ов ®ЎмҐЄв®ў ў® ўе®¤­®© Ї®в®Є. ЋЈа ­ЁзЁў ойЁҐ ¬ Єа®бЁ¬ў®«л Ё
Є®¬¬Ґ­в аЁЁ ®Ја ­ЁзЁў ов §­ ЄЁ, бзЁв ­­лҐ READ. ЌҐ®Ја ­ЁзЁў ойЁҐ
¬ Єа®бЁ¬ў®«л ­Ґ ®Ја ­ЁзЁў ов §­ ЄЁ, бзЁв ­­лҐ READ, Ё,
б«Ґ¤®ў вҐ«м­®, ¬®Јгв Ўлвм а бЇ®§­ ­л Є Є ¬ Єа®бЁ¬ў®«л б Ї®¬®ймо
Їа®ЎҐ«®ў.




COPY-CHAR-TYPE [char1,char2,flag] Function

…б«Ё <д« Ј> ­Ґ а ўҐ­ NIL, (COPY-CHAR-TYPE н«Ґ¬Ґ­в1 н«Ґ¬Ґ­в2 д« Ј)
Є®ЇЁагҐв н«Ґ¬Ґ­в вЁЇ  <н«Ґ¬Ґ­в2> ў ⥭гйго ®Ў« бвм бзЁвлў ­Ёп
н«Ґ¬Ґ­в  <н«Ґ¬Ґ­в1>. …б«Ё <д« Ј> - NIL Ё«Ё ®вбгвбвўгҐв,
COPY-CHAR-TYPE Є®ЇЁагҐв н«Ґ¬Ґ­в вЁЇ  <н«Ґ¬Ґ­в2> ў® ў§пвго Ї®
㬮«з ­Ёо ®Ў« бвм бзЁвлў ­Ёп н«Ґ¬Ґ­в  <н«Ґ¬Ґ­в1>. …б«Ё <н«Ґ¬Ґ­в2>
Ґбвм ¬ Єа®бЁ¬ў®«, гЄ § вҐ«м ­  ҐЈ® ¬ Єа®®ЇаҐ¤Ґ«Ґ­ЁҐ в Є¦Ґ
Є®ЇЁагҐвбп ў <н«Ґ¬Ґ­в1>. …б«Ё Є®ЇЁа®ў ­ЁҐ Їа®и«® гбЇҐи­®,
COPY-CHAR-TYPE ўл¤ Ґв ’, Ё­ зҐ - NIL.
ЏаЁ¬Ґа:
(COPY-CHAR-TYPE '\" '\;) --> NIL ;Makes comment char



SET-MACRO-CHAR [character,definition,flag] Function

…б«Ё <д« Ј> - NIL Ё«Ё ®вбгвбвўгҐв, (SET-MACRO-CHAR н«Ґ¬Ґ­в
®ЇаҐ¤Ґ«Ґ­ЁҐ д« Ј) Є®¬ЇЁ«ЁагҐв <®ЇаҐ¤Ґ«Ґ­ЁҐ> ­  D-Є®¤Ґ Ё б®§¤ Ґв
<н«Ґ¬Ґ­в> ў д஬Ґ ®Ја ­ЁзЁў о饣® ¬ Єа®бЁ¬ў®« . …б«Ё <д« Ј> Ґбвм
бЁ¬ў®« COMMENT, SET-MACRO-CHAR б®§¤ Ґв <¦«Ґ¬Ґ­в> ў д®а¬Ґ
¬ Єа®бЁ¬ў®«  Є®¬¬Ґ­в аЁп. ‚ Їа®вЁў­®¬ б«гз Ґ дг­ЄжЁп б®§¤ Ґв
<н«Ґ¬Ґ­в> ў д®а¬Ґ ­Ґ®Ја ­ЁзЁў о饣® ¬ Єа®бЁ¬ў®« .



GET-MACRO-CHAR [character,flag] Function

…б«Ё <д« Ј> - NIL Ё«Ё ®вбгвбвўгҐв, (GET-MACRO-CHAR н«Ґ¬Ґ­в
д« Ј) ¤ҐЄ®¬ЇЁ«ЁагҐв Ё ў®§ўа й Ґв ®ЇаҐ¤Ґ«Ґ­ЁҐ ¬ Єа®бЁ¬ў®« ,
бўп§ ­­®Ј® б <н«Ґ¬Ґ­в®¬>. …б«Ё <д« Ј> - ­Ґ NIL, GET-MACRO-CHAR
ў®§ўа й Ґв LAMBDA, Ґб«Ё <н«Ґ¬Ґ­в> пў«пҐвбп ¬ Єа®бЁ¬ў®«®¬. ‚ «оЎ®¬
б«гз Ґ дг­ЄжЁп ў®§ўа й Ґв NIL, Ґб«Ё <н«Ґ¬Ґ­в> ­Ґ пў«пҐвбп
¬ Єа®бЁ¬ў®«®¬.



( «Ґў п ЄагЈ« п бЄ®ЎЄ  ЋЈа ­ЁзЁў ойЁ© ¬ Єа®бЁ¬ў®«

Њ Єа®б «Ґў®© бЄ®ЎЄЁ бзЁвлў Ґв ўла ¦Ґ­Ёп ¤® вҐе Ї®а, Ї®Є  ­Ґ
ўбваҐвЁвбп Ї а­ п Їа ў п ЄагЈ« п бЄ®ЎЄ , Їа ў п Єў ¤а в­ п бЄ®ЎЄ 
Ё«Ё в®зЄ . …б«Ё Їа ў п бЄ®ЎЄ  ўбваҐвЁ« бм, ¬ Єа®б ў®§ўа й Ґв
бЇЁб®Є бзЁв ­­ле ўла ¦Ґ­Ё©. …б«Ё ўбваҐвЁ« бм Їа ў п Єў ¤а в­ п
бЄ®ЎЄ , ¬ Єа®б Їа®ЇгбЄ Ґв бЄ®ЎЄг, в Є зв® ®­  б­®ў  ¬®¦Ґв Ўлвм
бзЁв ­ , Ё ў®§ўа й Ґв бЇЁб®Є бзЁв ­­ле ўла ¦Ґ­Ё©. ќв® ¤ Ґв
ў®§¬ ¦­®бвм а бб¬ ваЁў вм Їа ўго Єў ¤а в­го бЄ®ЎЄг Є Є
бгЇҐа-ЄагЈ«го, Є®в®а п § Єалў Ґв ўбҐ «ҐўлҐ ЄагЈ«лҐ бЄ®ЎЄЁ ¤«п
READ ўлиҐбв®п饣® га®ў­п.
…б«Ё ўбваҐвЁ« бм в®зЄ , ¬ Єа® бзЁвлў Ґв б«Ґ¤го饥 §  в®зЄ®©
ўла ¦Ґ­ЁҐ Ё Їа®ўҐапҐв ҐЈ® б 楫мо гЎҐ¤Ёвмбп, зв® нв® ­ҐЇа®ЎҐ«м­®Ґ
ўла ¦Ґ­ЁҐ пў«пҐвбп «ЁЎ® Їа ў®© ЄагЈ«®© бЄ®ЎЄ®©, «ЁЎ® Їа ў®©
Єў ¤а в­®© бЄ®ЎЄ®©. …б«Ё в Є, в® ¬ Єа® ў®§ўа й Ґв бЇЁб®Є
ўла ¦Ґ­Ё©, бзЁв ­­ле ¤® в®Ј®, Є Є ўбвагвЁ« бм в®зЄ , ­Ґ бўп§ ­­ п
б ўла ¦Ґ­ЁҐ¬, бзЁв ­­л¬ Ї®б«Ґ в®зЄЁ. …б«Ё ­Ґв, ў®§­ЁЄ Ґв
ЇаҐалў ­ЁҐ "‘Ё­в ЄбЁзҐбЄ п ®иЁЎЄ ".




) Їа ў п ЄагЈ« п бЄ®ЎЄ  ЋЈа ­ЁзЁў ойЁ©
] Їа ў п Єў ¤а в­ п бЄ®ЎЄ  ¬ Єа®-бЁ¬ў®«

Њ Єа®б «Ґў®© ЄагЈ«®© бЄ®ЎЄЁ а бЇ®§­ Ґв Їа ўго ЄагЈ«го бЄ®ЎЄг
Ё Їа ўго Єў ¤а в­го бЄ®ЎЄг ў Є зҐб⢥ ®Ја ­ЁзЁвҐ«Ґ© бЇЁбЄ®ў.
Њ Єа®б Їа ў®© ЄагЈ«®© бЄ®ЎЄЁ Ё Їа ў®© Єў ¤а в­®© бЄ®ЎЄЁ
ЈҐ­ҐаЁагҐв ЇаҐалў ­ЁҐ "‘Ё­в ЄбЁзҐбЄ п ®иЁЎЄ ", Ґб«Ё READ
ўбваҐвЁ«  б«ЁиЄ®¬ ¬­®Ј® Їа ўле ЄагЈ«ле Ё«Ё Єў ¤а в­ле бЄ®Ў®Є.
ЏаЁ¬Ґа:
(SET-MACRO-CHAR '\) '(LAMBDA ()
(BREAK '\) "Syntax Error") ))

(SET-MACRO-CHAR '\] 'LAMBDA ()
(BREAK '\] "Syntax Error") ))




, § Їпв п ЋЈа ­ЁзЁў ойЁ© ¬ Єа®-бЁ¬ў®«

Њ Єа®б § Їпв®© ЈҐ­ҐаЁагҐв ЇаҐалў ­ЁҐ "‘Ё­в ЄбЁзҐбЄ п
®иЁЎЄ ", Ґб«Ё ®­  Ўл«  бзЁв ­  ­ҐЇ®б।б⢥­­® READ.


' Їа®бв п Є ўлзЄ  ЋЈа ­ЁзЁў ойЁ© ¬ Єа®-бЁ¬ў®«

Њ Єа®б Їа®бв®© Є ўлзЄЁ бзЁвлў Ґв ўла ¦Ґ­ЁҐ, б«Ґ¤го饥 § 
Є ўлзЄ®©, Ё ў®§ўа й Ґв бЇЁб®Є Ё§ 2-е н«Ґ¬Ґ­в®ў - бЁ¬ў®«  QUOTE Ё
бзЁв ­­®Ј® ўла ¦Ґ­Ёп. Џа®бв п Є ўлзЄ  гЇа®й Ґв ўў®¤ Є®­бв ­в ў
ўла ¦Ґ­ЁҐ LISP.
ЏаЁ¬Ґа:
(SET-MACRO-CHAR (QUOTE (LAMBDA ()
(LIST (QUOTE QUOTE) (READ)))) )

'(SUE TOM ANN) --> (SUE TOM ANN)



" ¤ў®©­ п Є ўлзЄ  ЋЈа ­ЁзЁў ойЁ© ¬ Єа®-бЁ¬ў®«

Њ Єа® ¤ў®©­®© Є ўлзЄЁ бзЁвлў Ґв н«Ґ¬Ґ­в ўе®¤­®Ј® Ї®в®Є  ¤®
вҐе Ї®а, Ї®Є  ­Ґ ўбвҐвЁвбп бЁ¬ў®« ¤ў®©­®© Є ўлзЄЁ, Ё ў®§ўа й Ґв
бЁ¬ў®«, ђ-Ё¬п Є®в®а®Ј® б®бв®Ёв Ё§ бзЁв ­­ле бЁ¬ў®«®ў. „«п
ўЄ«о祭Ёп ў Ї®в®Є бЁ¬ў®«®ў ¤ў®©­ле Є ўл祪 Ё Їа®бвле
а §Ја ­ЁзЁвҐ«м­ле бЁ¬ў®«®ў ¬®Јгв ЁбЇ®«м§®ў вмбп Їа®бвлҐ
а §Ја ­ЁзЁвҐ«м­лҐ бЁ¬ў®«л.
ЏаЁ¬Ґа:
(SET-MACRO-CHAR '\" '(LAMBDA (
CHAR LST )
(LOOP
(SETQ CHAR (READ-CHAR))
( (EQ CHAR '\")
(PACK (NREVERSE LST)) )
( ((EQ CHAR '\\)
(PUSH (READ-CHAR) LST) )
(PUSH CHAR LST) ) ) ))

"Yom said, \"I like Lisp\"" --> Tom said, "I like Lisp"




; в®зЄ  б § Їпв®© Њ Єа®-бЁ¬ў®« Є®¬¬Ґ­в аЁҐў

Њ Єа®б в®зЄЁ б § Їпв®© бзЁвлў Ґв н«Ґ¬Ґ­вл ¤® вҐе Ї®а, Ї®Є 
­Ґ ўбваҐвЁвбп <RETURN>. ’.Є. ў ¤ ­­®¬ б«гз Ґ ®ЎмҐЄвл ў® ўе®¤­®©
Ї®в®Є ­Ґ ўЄ«оз овбп, 㤮Ў­® ЁбЇ®«м§®ў вм в®зЄг б § Їпв®© ¤«п
®Ја ­ЁзҐ­Ёп Є®¬¬Ґ­в аЁҐў.
ЏаЁ¬Ґа:
(SET-MACRO-CHAR '\" '(LAMBDA ()
(LOOP
((EQ (READ-CHAR) (ASCII 13))) ) )
'COMMENT)

(LIST 'DOG 'CAT ;This is a comment
'COW) --> (DOG CAT COW)






RATOM [ ] Function

(RATOM) бзЁвлў Ґв н«Ґ¬Ґ­в Ё§ CIS Ё ў®§ўа й Ґв
ᮮ⢥вбвўгойЁ©  в®¬ muLISP. „«п 㤮Ўбвў  Їа®Ја ¬¬Ёа®ў ­Ёп  в®¬,
ўл§лў Ґ¬л© дг­ЄжЁҐ© RATOM, ®ЇаҐ¤Ґ«пҐвбп Є Є §­ зҐ­ЁҐ ЇҐаҐ¬Ґ­­®©
RATOM.
ќ«Ґ¬Ґ­в пў«пҐвбп бва®Є®© бЁ¬ў®«®ў, ®Ја ­ЁзҐ­­®© «ЁЎ®
Їа®ЎҐ« ¬Ё, «ЁЎа® бЁ¬ў®« ¬Ё ЇаҐалў ­Ёп. RATOM ў®§ўа й Ґв зЁб«®,
Ґб«Ё н«Ґ¬Ґ­в ­ зЁ­ Ґвбп б ¤ҐбпвЁз­®Ј® зЁб« , ¬Ґ­м襣®, 祬
⥪гй п ®б­®ў­ п бЁб⥬  бзЁб«Ґ­Ёп. ‚ Їа®вЁў­®¬ б«гз Ґ RATOM
ў®§ўа й Ґв бЁ¬ў®«. —Ёб«Ґ­­лҐ н«Ґ¬Ґ­вл § Є ­зЁў овбп «оЎл¬
бЁ¬ў®«®¬, ­Ґ пў«пойЁ¬бп жЁда®© ®б­®ў­®© бЁб⥬л бзЁб«Ґ­Ёп.
Џа®ЎҐ«м­лҐ бЁ¬ў®«л ЇаҐ¤­ §­ зҐ­л в®«мЄ® ¤«п
а §Ја ­ЁзҐ­Ёп н«Ґ¬Ґ­в®ў Ё ­Ґ ў®§ўа й овбп дг­ЄжЁҐ© RATOM ў
Є зҐб⢥  в®¬®ў. Џ® 㬮«з ­Ёо Їа®ЎҐ«м­л¬Ё бзЁв овбп бЁ¬ў®«л:
<space>,<return>,<linefeed>,<page> Ё <tab>.
‘Ё¬ў®«л ЇаҐалў ­Ёп в Є¦Ґ а §Ја ­ЁзЁў ов н«Ґ¬Ґ­вл, ­® ў
®в«ЁзЁҐ ®в Їа®ЎҐ«м­ле бЁ¬ў®«®ў ®­Ё ў®§ўа й овбп дг­ЄжЁҐ© RATOM
Є Є бЁ¬ў®«л, ўе®¤пйЁҐ ў б®бв ў н«Ґ¬Ґ­в®ў. ‘Ё¬ў®« ¬Ё ЇаҐалў ­Ёп
пў«повбп:
! " # $ % & ' ( ) * + , - . / :
< = > ? @ [ \ ] ^ _ ` { | } ~

RATOM а бЇ®§­ Ґв Їа®бвлҐ Ё б®бв ў­лҐ ®Ја ­ЁзЁвҐ«м­лҐ бЁ¬ў®«л
ў Є зҐб⢥ бЇ®б®Ў  ўЄ«о祭Ёп Їа®ЎҐ«®ў Ё (Ё«Ё) бЁ¬ў®«®ў ЇаҐалў ­Ёп
Є Є з бвЁ н«Ґ¬Ґ­в®ў Ї®в®Є®ў.
ЏаЁ¬Ґа:
(DEFUN RATOM ()
((a file is CIS and end-of-file has been reached)
(BREAK (INPUTFILE) "End-Of-File") )
(SETQ RATOM (the next token read from the CIS)) )

(RATOM) DOG --> DOG
(RATOM) 123CAT --> 123





SET-BREAK-CHARS [list,flag] Function
GET-BREAK-CHARS [ ] Function

…б«Ё <д« Ј> - NIL Ё«Ё ®вбгвбвўгҐв, (SET-BREAK-CHARS cЇЁб®Є
д« Ј) ¤Ґ« Ґв н«Ґ¬Ґ­вл <бЇЁбЄ > бЁ¬ў®« ¬Ё ЇаҐалў ­Ёп. …б«Ё <д« Ј>
- ­Ґ NIL, SET-BREAK-CHARS ¤®Ў ў«пҐв бЁ¬ў®«л Ё§ <бЇЁбЄ > Є
⥪г饬㠬­®¦Ґбвўг бЁ¬ў®«®ў ЇаҐалў ­Ёп.
(GET-BREAK-CHARS) ў®§ўа й Ґв бЇЁб®Є ⥪г饣® ¬­®¦Ґбвў 
бЁ¬ў®«®ў ЇаҐалў ­Ёп.


......... Ќ … ’ Љ Ћ Ќ – Ђ .........





5.14.2. ”г­ЄжЁЁ ўлў®¤ 


”г­ЄжЁЁ ўлў®¤  ЇҐаҐ¤ ов ўл室­лҐ ¤ ­­лҐ ў ⥪гйЁ© ўл室­®©
Ї®в®Є (COS). …б«Ё COS дў«дҐвбд ¤ЁбЄ®ўл¬ д ©«®¬ Ё ­  ¤ЁбЄҐ
­Ґ¤®бв в®з­® ¬Ґбв  ¤«п а §¬ҐйҐ­Ёп ўл室­ле ¤ ­­ле, ¤Ґ« Ґвбп
Ї®ЇлвЄ  гбв ­®ўЄЁ ¬ҐвЄЁ "Disk Full" б® §­ зҐ­ЁҐ¬ NIL. …б«Ё нв 
Ї®ЇлвЄ  ­Ґ Ўг¤Ґв ў®бЇаЁ­пв  ЇаЁЄ« ¤­л¬Ё Їа®Ја ¬¬ ¬Ё, ў®§­ЁЄ Ґв
ЇаҐалў ­ЁҐ Ї® ®иЁЎЄҐ "Disk Full". ЏаЁ ЇаҐалў ­ЁЁ ЇҐаҐ¬Ґ­­®© WRS
ЇаЁбў Ёў Ґвбп §­ зҐ­ЁҐ NIL, Є®­б®«м ЇаЁ­Ё¬ Ґвбп §  COS, ­® д ©«
®бв Ґвбп ®вЄалвл¬.


PRIN1 [object] Function

(PRIN1 ®ЎмҐЄв) ЇҐаҐ¤ Ґв бЁ¬ў®«м­®Ґ ЇаҐ¤бв ў«Ґ­ЁҐ <®ЎмҐЄв > ў
COS Ё ў®§ўа й Ґв <®ЎмҐЄв>.
PRIN1 ЇҐз в Ґв бЁ¬ў®«л, ЁбЇ®«м§гп Ёе ђ-Ё¬Ґ­ . ЏҐаҐ¬Ґ­­ п
*PRINT-ESCAPE* Є®­ва®«ЁагҐв ЁбЇ®«м§®ў ­ЁҐ а §Ја ­ЁзЁвҐ«м­ле
бЁ¬ў®«®ў ў®ЄагЈ ђ-Ё¬Ґ­, в.Ґ. Їа®ЎҐ«®ў, ¬ Єа® Ё«Ё
а §Ја ­ЁзЁвҐ«м­ле бЁ¬ў®«®ў (б¬. а §¤Ґ« 5.14.3). PRIN1 ЇҐз в Ґв
зЁб«  б®Ј« б­® ⥪г饩 бЁб⥬Ґ бзЁб«Ґ­Ёп. ЏҐаҐ¬Ґ­­ п
*PRINT-POINT* Є®­ва®«ЁагҐв ¬ ЄбЁ¬ «м­®Ґ зЁб«® ¤ҐбпвЁз­ле §­ Є®ў
¤«п Ё§®Ўа ¦Ґ­Ёп ­  нЄа ­Ґ ¤ЁбЇ«Ґп ¤а®Ў­ле зЁбҐ« (б¬. а §¤Ґ«
5.14.3). PRIN1 ЇҐз в Ґв cons-л , ЁбЇ®«м§гп Ёе бЇЁбЄ®ўлҐ
Ё§®Ўа ¦Ґ­Ёп , Ј¤Ґ нв® ў®§¬®¦­®, Ё Ё§®Ўа ¦Ґ­Ёп в®зҐз­л¬Ё Ї а ¬Ё,
Ј¤Ґ нв® ­Ґ®Ўе®¤Ё¬® ( б¬. Ј« ўг 4).
ЏаЁ¬Ґа:
(DEFUN PRIN (OBJ)
((SYMBOLP OBJ)
(output OBJ's print name to the COS) )
((NUMBERP OBJ)
(output OBJ's numerical value expressed in the
current output radix base to the COS) )

(PRIN1 '"(")
(LOOP
(PRIN1 (POP OBJ))
((NULL OBJ))
(SPACE 1)
((ATOM OBJ)
(PRIN1 '".")
(SPACES 1)
(PRIN1 OBJ) ) )
(PRIN1 '")")
OBJ )







PRINC [object] Function

PRINC Ё¤Ґ­вЁз­  PRIN1, Єа®¬Ґ в®Ј®, зв® ђ-Ё¬Ґ­ , ᮤҐа¦ йЁҐ
бЇҐжЁ «м­лҐ бЁ¬ў®«л, ­Ґ ®Ја ­ЁзҐ­л а §Ја ­ЁзЁвҐ«м­л¬Ё бЁ¬ў®« ¬Ё,
ЇаЁзҐ¬ §­ зҐ­ЁҐ Є®­ва®«м­®© ЇҐаҐ¬Ґ­­®© *PRINT-ESCAPE* ­Ґ ЁЈа Ґв
а®«Ё.
ЏаЁ¬Ґа:
(DEFUN PRINC (OBJ *PRINT-ESCAPE*)
(SETQ *PRINT-ESCAPE* T)
(PRIN1 OBJ) )




PRINT [object] Function

(PRINT ®ЎмҐЄв) ЇҐаҐ¤ Ґв бЁ¬ў®«м­®Ґ ЇаҐ¤бв ў«Ґ­ЁҐ <®ЎмҐЄв > ў
COS, ЁбЇ®«м§гп PRIN1, ®Ја ­ЁзЁў Ґв бва®Єг,   § вҐ¬ ў®§ўа й Ґв
<®ЎмҐЄв>.
ЏаЁ¬Ґа:
(DEFUN PRINT (OBJ)
(PRIN1 OBJ)
(TERPRI)
OBJ )





TERPRI [n] Function
FRESH-LINE [ ] Function

…б«Ё <n> - ­®«м Ё«Ё Ї®«®¦ЁвҐ«м­®Ґ 楫®Ґ, (TERPRI n) ЇҐаҐ¤ Ґв
<n> бЁ¬ў®«®ў ASCII ­®ў®© бва®ЄЁ ў бйл Ё ў®§ўа й Ґв NIL. ЋвбгбвўЁҐ
<n> а бб¬ ваЁў Ґвбп Є Є 1.
…б«Ё ¬л 㦥 ­ е®¤Ё¬бп ў ­ з «Ґ бва®ЄЁ, (FRESH-LINE) Їа®бв®
ў®§ўа й Ґв NIL, Ё­ зҐ дг­ЄжЁп ЇҐаҐ¤ Ґв ­®ўго бва®Єг ў COS Ё
ў®§ўа й Ґв ’.
ЏаЁ¬Ґа:
(DEFUN TERPRI (N)
((AND (INTEGERP N) (>=N 0))
(LOOP
((ZEROP N) NIL)
((WRITE-BYTE 13)
((WRITE-BYTE 10)
(DECQ N) ) )
(TERPRI 1) )

(YERPRI 10) --> moves tp left margin and down 10 lines




SPACES [n] Function

…б«Ё <n> - ­®«м Ё«Ё Ї®«®¦ЁвҐ«м­®Ґ 楫®Ґ, (SPACES n) ЇҐаҐ¤ Ґв
<n> Їгбвле ASCII-бЁ¬ў®«®ў ( в.Ґ. Ё­вҐаў «®ў) ў COS Ё ў®§ўа й Ґв
Є®«ЁзҐбвў® ЇҐаҐ¤ ­­ле бЁ¬ў®«®ў Ї®б«Ґ в®Ј®, Є Є Ўг¤Ґв ЇҐаҐ¤ ­ 
Ї®б«Ґ¤­пп ­®ў п бва®Є . Ћвбгвбвўго饥 <n> § ¬Ґ­пҐвбп ­  1.
ЏаЁ¬Ґа:
(DEFUN SPACES (N)
((AND (INTEGERP N) (>=N 0))
(LOOP
((ZEROP N)
(characters sent to COS since last newline) )
(WRITE-BYTE 32)
(DECQ N) ) )
(SPACES 0) )

(DEFUN TAB (N)
(SPACES (- N )SPACES))) )

(SPACES 10) --> 10 ;Moves the cursor right 10 spaces
(TAB 20) --> 20 ;Moves the cursor right to column 20




WRITE-STRING [symbol] Function
WRITE-LINE [symbol] Function

…б«Ё <бЁ¬ў®«> - бЁ¬ў®«, (WRITE-STRING бЁ¬ў®«) Ё (WRITE-LINE
бЁ¬ў®«) § ЇЁблў ов н«Ґ¬Ґ­вл ђ-Ё¬Ґ­Ё <бЁ¬ў®« > ў COS Ё ў®§ўа й Ґв
<бЁ¬ў®«>. WRITE-LINE § ЇЁблў Ґв н«Ґ¬Ґ­в ­®ў®© бва®ЄЁ Ї®б«Ґ
ЇҐаҐбл«ЄЁ ђ-Ё¬Ґ­Ё. …б«Ё <бЁ¬ў®«> - ­Ґ бЁ¬ў®«, в® ®ЎҐ дг­ЄжЁЁ
ў®§ўа й ов NIL.
ЏаЁ¬Ґа:
(DEFUN WRITE-STRING (SYMB)
((SYMBOLP SYMB)
(write the SYMB's print name string to the COS)
SYMB ) )

(DEFUN WRITE-LINE (SYMB)
((SYMBOLP SYMB)
(write the SYMB's print name string to the COS)
(TERPRI)
SYMB ) )




WRITE-BYTE [n] Function

…б«Ё <n> - 楫®Ґ зЁб«® ў ЇаҐ¤Ґ« е ®в 0 ¤® 255 ўЄ«озЁвҐ«м­®,
(WRITE-BYTE n) §ўЇЁблў Ґв n Ў ©в®ў ў COS Ё ў®§ўа й Ґв <n>.
ЏаЁ¬Ґа:
(DEFUN WRITE-BYTE (N)
((AND (INTEGER N) (<= 0 N 255))
(write N to COS)
N ) )

(WRITE-BYTE 65) --> 65





LINELENGTH [n] Function

…б«Ё <n> - Ї®«®¦ЁвҐ«м­®Ґ 楫®Ґ, (LINELENGTH n) ®ЇаҐ¤Ґ«пҐв
¤«Ё­г бва®ЄЁ ¤«п ўлў®¤  ҐҐ бЁб⥬­л¬ ЇаЁ­вҐа®¬ ў д ©«Ґ, в Є зв®
бва®ЄЁ  ўв®¬ вЁзҐбЄЁ ®Ја ­ЁзЁў овбп Ї® ¤«Ё­Ґ <n> бЁ¬ў®« ¬Ё.
LINELENGTH ўл¤ Ґв ЇаҐ¤л¤гйго ¤«Ё­г бва®ЄЁ. …б«Ё <n> -
­ҐЇ®«®¦ЁвҐ«м­®Ґ 楫®Ґ Ё«Ё ­Ґ § ¤ ­®, дг­ЄжЁп ўл¤ Ґв ⥪гйго ¤«Ё­г
бва®ЄЁ.
„«п Ї®«г祭Ёп Ё­д®а¬ жЁЁ ® д®а¬Ёа®ў ­ЁЁ ¤«Ё­л бва®ЄЁ ¤«п
ўлў®¤  ҐҐ ­  Є®­б®«м б¬. а §¤Ґ« 5.21. „«Ё­  бва®ЄЁ Ї® 㬮«з ­Ёо -
79. „«Ё­г бва®ЄЁ Ї® 㬮«з ­Ёо ¬®¦­® Ё§¬Ґ­Ёвм Їг⥬ ¬®¤ЁдЁЄ жЁЁ
ᮮ⢥вбвўго饩 з бвЁ Ў §л muLISP (б¬. "ЏаЁ«®¦Ґ­ЁҐ: Module Map").
ЏаЁ¬Ґа:
(DEFUN LINELENGTH (N)
((AND (INTEGERP N) (PLUSP N))
(set maximum output line length to N)
(return the previous line length) )
(return the current line length) )






Соседние файлы в папке Filp