
Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
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) )
(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