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

Lisp / Filp / LISP9

.TXT
Скачиваний:
21
Добавлен:
15.06.2014
Размер:
26.77 Кб
Скачать
TRUNCATE [n,m] Function

…б«Ё <n> - 楫®Ґ зЁб«®, (TRUNCATE n) ў®§ўа й Ґв <n>. …б«Ё
<n> - Ї®«®¦ЁвҐ«м­®Ґ ¤а®Ў­®Ґ зЁб«®, TRUNCATE ў®§ўа й Ґв ­ ЁЎ®«м襥
楫®Ґ зЁб«®, ­® ¬Ґ­миҐ <n>. …б«Ё <n> - ®ваЁж вҐ«м­®Ґ ¤а®Ў­®Ґ
зЁб«®, TRUNCATE ў®§ўа й Ґв ­ Ё¬Ґ­м襥 楫®Ґ зЁб«®, ­® Ў®«миҐ <n>.
„агЈЁ¬Ё б«®ў ¬Ё, TRUNCATE гᥪ Ґв <n>, ЇаЁЎ«Ё¦ п ҐЈ® Є ­г«о.
…б«Ё <n> Ё <m> - зЁб« , (TRUNCATE n m) гᥪ Ґв Є ­г¤о
з бв­®Ґ ®в ¤Ґ«Ґ­Ёп <n> ­  <m>. (TRUNCATE n m) ]rdbdfktynyj
(TRUNCATE (/ n m)). …б«Ё <n> (в.Ґ. ¤Ґ«ЁвҐ«м) - ­®«м, ў®§­ЁЄ Ґв
ЇаҐалў ­ЁҐ Ї® ®иЁЎЄҐ "„Ґ«Ґ­ЁҐ ­  ­®«м".
ЏаЁ¬Ґа:
(DEFUN TRUNCATE (N M)
((NUMBERP M)
((ZEROP M)
(BREAK (LIST 'TRUNCATE N M) '"Zero divide") )
(TRUNCATE (/ N M)) )
((NUMBERP N)
((INTEGERP N) N)
((PLUSP N)
(the largest integer less than N) )
(the smallest integer greater than N) )
(BREAK (LIST 'TRUNCATE N M) '"Nonnumeric Argument") )

(TRUNCATE 7.3) --> 7
(TRUNCATE -3.5) --> -3
(TRUNCATE 8 3) --> 2
(TRUNCATE -15/4 2) --> -1




ROUND [n,m] Function

…б«Ё <n> - 楫®Ґ зЁб«®, (ROUND n) ў®§ўа й Ґв <n>. …б«Ё <n> -
¤а®Ў­®Ґ, ROUND ў®§ўа й Ґв 楫®Ґ зЁб«®, Ў«Ё¦ ©иҐҐ Ї® §­ зҐ­Ёо Є
<n>. …б«Ё <n> бв®Ёв Ї®бҐаҐ¤Ё­Ґ ¬Ґ¦¤г ¤ўг¬п 楫묨 зЁб« ¬Ё (в.Ґ.
2*n - 楫®Ґ зЁб«®), ROUND ў®§ўа й Ґв ®¤­® Ё§ ­Ёе, ¤Ґ«п饥бп ЎҐ§
®бв вЄ  ­Є ¤агЈ®Ґ.
…б«Ё <n> Ё <m> - зЁб« , (ROUND n m) ®ЄагЈ«пҐв з бв­®Ґ ®в
¤Ґ«Ґ­Ёп <n> ­  <m>. ‚л§®ў (ROUND n m) нЄўЁў «Ґ­вҐ­ (ROUND (/ n
m)). …б«Ё <m> (в.Ґ. ¤Ґ«ЁвҐ«м) - ­®«м, ў®§­ЁЄ Ґв ЇаҐалў ­ЁҐ Ї®
®иЁЎЄҐ "„Ґ«Ґ­ЁҐ ­  ­®«м".
ЏаЁ¬Ґа:
(DEFUN ROUND (N M)
((NUMBERP M)
((ZEROP M)
(BREAK (LIST 'ROUND N M) '"Zero divide") )
(ROUND (/ N M)) )
((NUMBERP N)
((INTEGERP N) N)
((INTEGERP (* 2 N))
((EVENP (TRUNCATE N))
(TRUNCATE N) )
(ADD1 (TRUNCATE N)) )
(the integer closest to N) )
(BREAK (LIST 'ROUND N M) '"Nonnumeric Argument") )

(ROUND 7.3) --> 7
(ROUND -3.5) --> -4
(ROUND 8 3) --> 3
(ROUND -15/4 2) --> -2



MOD [n,m] Function

…б«Ё <n> Ё <m> - зЁб« , (MOD n m) ў®§ўа й Ґв १г«мв в
¤Ґ«Ґ­Ёп <n> ­  <m> Ї® ¬®¤г«о. …б«Ё <m> (в.Ґ ¤Ґ«ЁвҐ«м) а ўҐ­ ­г«о,
ў®§­ЁЄ Ґв ЇаҐалў ­ЁҐ Ї® ®иЁЎЄҐ "„Ґ«Ґ­ЁҐ ­  ­®«м".
MOD ®ЇаҐ¤Ґ«Ґ­ в Є, зв® FLOOR Ё MOD б®еа ­пов бўп§м ¬Ґ¦¤г
з бв­л¬Ё Ё ®бв вЄ ¬Ё:

n=m*(FLOOR n m) + (MOD n m)

ЏаЁ¬Ґа:
(DEFINE MOD (N M)
((AND (NUMBERP N) (NUMBERP M))
((ZEROP M)
(BREAK (LIST 'MOD N M) '"Zero Divide") )
(- N (* M (FLOOR N M))) )
(BREAK (LIST 'MOD N M) '"Nonnumeric Argument") )

(MOD 7 3) --> 1
(MOD -7 3) --> 2
(MOD 7 -3) --> -2
(MOD -7 -3) --> -1




REM [n,m] Function

…б«Ё <n> Ё <m> - зЁб« , (REM n m) ў®§ўа й Ґв ®бв в®Є ®в
¤Ґ«Ґ­Ёп <n> ­  <m>. …б«Ё <m> (в.Ґ ¤Ґ«ЁвҐ«м) а ўҐ­ ­г«о, ў®§­ЁЄ Ґв
ЇаҐалў ­ЁҐ Ї® ®иЁЎЄҐ "„Ґ«Ґ­ЁҐ ­  ­®«м".
REM ®ЇаҐ¤Ґ«Ґ­ в Є, зв® TRUNCATE Ё REM б®еа ­пов бўп§м ¬Ґ¦¤г
з бв­л¬Ё Ё ®бв вЄ ¬Ё:

n = m*(TRUNCATE n m) + (REM n m)

ЏаЁ¬Ґа:
(DEFINE REM (N M)
((AND (NUMBERP N) (NUMBERP M))
((ZEROP M)
(BREAK (LIST 'REM N M) '"Zero Divide") )
(- N (* M (TRUNCATE N M))) )
(BREAK (LIST 'REM N M) '"Nonnumeric Argument") )


(REM 7 3) --> 1
(REM -7 3) --> -1
(REM 7 -3) --> 1
(REM -7 -3) --> -1




DIVIDE [n,m] Function

…б«Ё <n> - зЁб«®, (DIVIDE n m) ў®§ўа й Ґв Ї аг (cons), г
Є®в®а®© car-н«Ґ¬Ґ­в Ґбвм (TRUNCATE n),   cdr-н«Ґ¬Ґ­в - (REM n).
…б«Ё <n> Ё <m> - зЁб« , (DIVIDE n m) ў®§ўа й Ґв Ї аг (cons),
г Є®в®а®© car-н«Ґ¬Ґ­в Ґбвм (TRUNCATE n m),   cdr-н«Ґ¬Ґ­в - (REM n
m). …б«Ё <m> (в.Ґ. ¤Ґ«ЁвҐ«м) а ўҐ­ ­г«о, ў®§­ЁЄ Ґв ЇаҐалў ­ЁҐ Ї®
®иЁЎЄҐ "„Ґ«Ґ­ЁҐ ­  ­®«м".
‚ ⮬ б«гз Ґ, Є®Ј¤  вॡговбп гбҐзҐ­­лҐ здбв­®Ґ Ё ®бв в®Є
®¤­®ўаҐ¬Ґ­­®, ўлЈ®¤­ҐҐ ЁбЇ®«м§®ў вм дг­ЄжЁо DIVIDE, 祬 ўлзЁб«пвм
Ёе ®в¤Ґ«м­®.
ЏаЁ¬Ґа:
(DEFINE DIVIDE (N M)
((AND (NUMBERP N) (NUMBERP M))
((ZEROP M)
(BREAK (LIST 'DIVIDE N M) '"Zero Divide") )
(CONS (TRUNCATE N M) (REM N M)) )
(BREAK (LIST 'DIVIDE N M) '"Nonnumeric Argument")

(DIVIDE 7 3) --> (2 . 1)
(DIVIDE -7 3) --> (-2 . -1)
(DIVIDE 7 -3) --> (-2 . 1)
(DIVIDE -7 -3) --> (2 . -1)


Џ®ЎЁв®ўлҐ «®ЈЁзҐбЄЁҐ дг­ЄжЁЁ, а бб¬ ваЁў Ґ¬лҐ ў ¤ ­­®¬
а §¤Ґ«Ґ, а Ў®в ов в®«мЄ® б 楫묨 зЁб« ¬Ё. …б«Ё ®­Ё ўл§лў овбп б
­ҐжҐ«л¬Ё  аЈг¬Ґ­в ¬Ё, ў®§­ЁЄ Ґв ЇаҐалў ­ЁҐ Ї® ®иЁЎЄҐ "ЌҐжҐ«л©
 аЈг¬Ґ­в".


LOGAND [n1,n2,...,nM] Function

(LOGAND n1 n2 ... nM) ў®§ўа й Ґв १г«мв в ўлЇ®«­Ґ­Ёп
Ї®ЎЁв®ў®Ј® «®ЈЁзҐбЄ®Ј® "€" ­ ¤ 楫묨 зЁб« ¬Ё <n1>, ..., <nM>.
…б«Ё LOGAND ўл§лў Ґвбп ЎҐ§  аЈг¬Ґ­в®ў, дг­ЄжЁп ўл¤ Ґв "-1" -
Ё¤Ґ­вЁдЁЄ в®а ¤ ­­®© ®ЇҐа жЁЁ.
ЏаЁ¬Ґа:
(DEFUN LOGAND LST
((NULL LST) -1)
((NULL (CDR LST))
(CAR LST) )
((AND (INTEGERP (CAR LST)) (INTEGERP (CADR LST)))
(APPLY 'LOGAND (CONS (the bitwise logical
and of (CAR LST) and (CADR LST))
(CDDR LST)) )
(APPLY 'LOGAND
(CONS (BREAK (LIST 'LOGAND (CAR LST) (CADR LST))
'"Noninteger Argument" )
(CDDR LST))) )

(LOGAND 11 6) --> 2



LOGIOR [n1,n2,...,nM] Function

(LOGIOR n1 n2 ... nM) ў®§ўа й Ґв १г«мв в ўлЇ®«­Ґ­Ёп
Ї®ЎЁв®ў®Ј® «®ЈЁзҐбЄ®Ј® "€‹€" ­ ¤ 楫묨 зЁб« ¬Ё <n1>, <n2>, ...,
<nM>. …б«Ё LOGIOR ўл§лў Ґвбп ЎҐ§  аЈг¬Ґ­в®ў, дг­ЄжЁп ўл¤ Ґв 0 -
Ё¤Ґ­вЁдЁЄ в®а ¤ ­­®© дг­ЄжЁЁ.
ЏаЁ¬Ґа:
(DEFUN LOGIOR LST
((NULL LST) 0)
((NULL (CDR LST))
(CAR LST) )
((AND (INTEGERP (CAR LST)) (INTEGERP (CADR LST)))
(APPLY 'LOGIOR (CONS (the bitwise logical inclusive
or of (CAR LST) and (CADR LST))
(CDDR LST)) )
(APPLY 'LOGIOR
(CONS (BREAK (LIST 'LOGIOR (CAR LST) (CADR LST))
'"Noninteger Argument" )
(CDDR LST))) )

(LOGIOR 11 6) --> 15




LOGXOR [n1,n2,...,nM] Function

(LOGXOR n1 n2 ... nM) ў®§ўа й Ґв १г«мв в ўлЇ®«­Ґ­Ёп
Ї®ЎЁв®ў®Ј® «®ЈЁзҐбЄ®Ј® ЁбЄ«оз о饣® "€‹€" (XOR) ­ ¤ 楫묨
зЁб« ¬Ё <n1>, ..., <nM>. …б«Ё LOGXOR ўл§лў Ґвбп ЎҐ§  аЈг¬Ґ­в®ў,
дг­ЄжЁп ў®§ўа й Ґв 0 - Ё¤Ґ­вЁдЁЄ в®а ¤ ­­®© дг­ЄжЁЁ.
ЏаЁ¬Ґа:
(DEFUN LOGXOR LST
((NULL LST) 0)
((NULL (CDR LST))
(CAR LST) )
((AND (INTEGERP (CAR LST)) (INTEGERP (CADR LST)))
(APPLY 'LOGXOR (CONS (the bitwise logical exclusive
or of (CAR LST) and (CADR LST))
(CDDR LST)) )
(APPLY 'LOGXOR
(CONS (BREAK (LIST 'LOGXOR (CAR LST) (CADR LST))
'"Noninteger Argument" )
(CDDR LST))) )

(LOGXOR 11 6) --> 13



LOGNOT [n] Function

(LOGNOT n) ў®§ўа й Ґв १г«мв в ўлЇ®«­Ґ­Ёп Ї®ЎЁв®ў®Ј®
«®ЈЁзҐбЄ®Ј® "Ќ…" ­ ¤ <n>.
ЏаЁ¬Ґа:
(DEFUN LOGNOT (N)
((INTEGERP N)
(complement every bit in N) )
(BREAK (LIST 'LOGNOT N) '"Noninteger Argument") )

(LOGNOT 9) --> 65526



SHIFT [n,m] Function

…б«Ё <m> - Ї®«®¦ЁвҐ«м­®Ґ, (SHIFT n m) ў®§ўа й Ґв १г«мв в
б¤ўЁЈ  <n> ў«Ґў® ­  <m> ЎЁв®ў. …б«Ё <m> - ®ваЁж вҐ«м­®Ґ, <n>
б¤ўЁЈ Ґвбп ўЇа ў® ­  -<m> ЎЁв®ў.
ЏаЁ¬Ґа:
(DEFUN SHIFT (N M)
((AND (INTEGERP N) (INTEGERP M))
((ZEROP M) N)
((PLUSP M)
((SHIFT (* N 2) (SUB1 M)) )
(SHIFT (TRUNCATE N 2) (SUB1 M)) )
(BREAK (LIST 'SHIFT N M) '"Noninteger Argument" )


(SHIFT 5 2) --> 20
(SHIFT 5 -2) --> 1




BITLENGTH [n] Function

(BITLENGTH n) ў®§ўа й Ґв Є®«ЁзҐбвў® ЎЁв®ў, вॡ㥬®Ґ ¤«п
а §¬ҐйҐ­Ёп <n>.
ЏаЁ¬Ґа:
(DEFUN BITLENGTH (N)
((INTEGERP N)
((ZEROP N) 0)
(ADD1 (BITLENGTH (SHIFT N -1))) )
(BREAK (LIST 'BITLENGTH N) '"Noninteger Argument") )

(BITLENGTH 4) --> 3
(BITLENGTH 7) --> 3
(BITLENGTH 8) --> 4






5.13. Ќ з «м­лҐ ўла ¦Ґ­Ёп ¤«п ўў®¤ 

”г­ЄжЁЁ ўў®¤ , ЇҐаҐ¬Ґ­­лҐ Є®­ва®«п Ё бЁ¬ў®«м­лҐ ¬ Єа®бл ¤ ов
ў®§¬®¦­®бвм Їа®Ја ¬¬ ¬, ­ ЇЁб ­­л¬ ­  muLISP, бзЁвлў вм Ё
Ё­вҐаЇаҐвЁа®ў вм ¤ ­­лҐ Ё§ ⥪г饣® ўе®¤­®Ј® Ёбв®з­ЁЄ  (CIS).
”г­ЄжЁЁ ўе®¤­®Ј® Ёбв®з­ЁЄ  Ёбб«Ґ¤гов CIS Ё «б ­ ў«Ёў ов
гЄ § вҐ«Ё з⥭Ёп ­  д ©«л.
”г­ЄжЁЁ ўў®¤  бзЁвлў :в ¤ ­­лҐ Ё§ CIS.
ЏҐаҐ¬Ґ­­лҐ гЇа ў«Ґ­Ёп ўў®¤®¬ гЇа ў«пов а §«Ёз­л¬Ё ®ЇжЁп¬Ё
ўў®¤ .
‘Ё¬ў®«м­лҐ ¬ Єа®бл ўў®¤  ®бгйҐбвў«пов Ја ¬¬ вЁзҐбЄЁ© а §Ў®а
бў®©бвў дг­ЄжЁ©, Є Є в®«мЄ® дг­ЄжЁп ўбваҐз Ґв бЁ¬ўа« ¬ Єа®.

5.13.1. ”г­ЄжЁЁ ўе®¤­®Ј® Ёбв®з­ЁЄ 

”г­ЄжЁЁ ўе®¤­®Ј® Ёбв®з­ЁЄ  ®вЎЁа ов Ё­д®а¬ жЁо, Ё¬Ґойго
®в­®иҐ­ЁҐ Є Ёбв®з­ЁЄг ўў®¤  Ё­д®а¬ жЁЁ дг­ЄжЁп¬Ё ўў®¤ . CIS ¬®¦Ґв
б®§¤ ў вмбп «ЁЎ® б Є®­б®«Ё, «ЁЎ® Ё§ ⥪г饣® ўе®¤­®Ј® д ©« 
(CIF). •®вп ®ЇаҐ¤Ґ«Ґ­­лҐ вЁЇл д ©«®ў ¬®Јгв Ўлвм ®вЄалвл ¤«п
ўў®¤ , в®«мЄ® ®¤Ё­ Ё§ ®вЄалвле ўе®¤­ле д ©«®ў ¬®¦Ґв Ўлвм д ©«®¬
CIF ў Є ¦¤л© Є®­ЄаҐв­л© ¬®¬Ґ­в.



RDS [drive:name.type] Function

…б«Ё д ©« <гбва®©бвў®:Ё¬п.вЁЇ> 㦥 ­Ґ Ўл« а ­ҐҐ ®вЄалв ¤«п
ўў®¤  Ё (Ё«Ё) ўлў®¤ , (RDS гбва®©бвў®:Ё¬п.вЁЇ) ЁйҐв д ©«
<Ё¬п.вЁЇ> ­  <гбва®©б⢥>. …б«Ё д ©« ­ ©¤Ґ­, RDS ¤Ґ« Ґв ҐЈ®
д ©«®¬ CIF, гбв ­ ў«Ёў Ґв гЄ § вҐ«м з⥭Ёп ў ­®«м,   ЇҐаҐ¬Ґ­­®©
гЇа ў«Ґ­Ёп RDS ЇаЁбў Ёў Ґв §­ зҐ­ЁҐ <гбва®©бвў®:Ё¬п.вЁЇ>. ќв®
¤Ґ« Ґв д ©« Є Є д ©«®¬ CIF, в Є Ё д ©«®¬ CIS. …б«Ё д ©« ­Ґ
­ ©¤Ґ­, RDS ­Ґ Ё§¬Ґ­пҐв CIF,   ЇҐаҐ¬Ґ­­го гЇа ў«Ґ­Ёп RDS Ї®« Ј Ґв
а ў­®© NIL; §  CIS ЎҐаҐвбп Є®­б®«м.
…б«Ё д ©« <гбва®©бвў®:Ё¬п.вЁЇ> 㦥 Ўл« ®вЄалв ¤«п ўў®¤  Ё
(Ё«Ё) ўлў®¤ , (RDS гбва®©бвў®:Ё¬п.вЁЇ) ¤Ґ« Ґв ҐЈ® д ©«®¬ CIF Ё
гбв ­ ў«Ёў Ґв ЇҐаҐ¬Ґ­­®© гЇа ў«Ґ­Ёп RDS §­ зҐ­ЁҐ бЁ¬ў®« 
<гбва®©бвў®:Ё¬п.вЁЇ>. ќв® ¤Ґ« Ґв д ©« Є Є д ©«®¬ CIF, в Є Ё CIS.
Ћв¬ҐвЁ¬, зв® ¤ ­­ п ®ЇҐа жЁп ­Ґ ®ЎҐбЇҐзЁў Ґв ¤®бвгЇ  Є ¤ЁбЄг Ё
зв® гЄ § вҐ«м з⥭Ёп д ©«  ­Ґ Ё§¬Ґ­пҐвбп.
…б«Ё <вЁЇ> ®вбгвбвўгҐв, RDS ЇаЁбў Ёў Ґв вЁЇг д ©«  Ё¬п
"LSP". …б«Ё ®вбгвбвўгҐв <гбва®©бвў®:>, RDS ўлЇ®«­пҐв ¤Ґ©бвўЁп,
®ЇЁб ­­лҐ ўлиҐ, §  ЁбЄ«о祭ЁҐ¬ в®Ј®, зв® д ©« ®вЄалў Ґвбп ­ 
гбва®©б⢥, § ¤ ­­®¬ ў ¤ ­­л© ¬®¬Ґ­в Ї® 㬮«з ­Ёо.
…б«Ё Ё¬ҐҐвбп  ЄвЁў­л© CIF, ўл§®ў (RDS) § Єалў Ґв CIF ¤«п
ўў®¤  (­® ­Ґ ¤«п ўлў®¤ , Ґб«Ё Є ЄЁҐ-«ЁЎ® д ©«л ҐйҐ ®вЄалвл ­ 
ўлў®¤), в.Ґ.  ЄвЁў­®Ј® CIF ­Ґв, Ё гбв ­ ў«Ёў Ґв ЇҐаҐ¬Ґ­­го RDS ў
NIL; §  CIS ЇаЁ­Ё¬ Ґвбп Є®­б®«м.
ЏаЁ¬Ґа:
(DEFUN RDS (DRIVE:NAME.TYPE)
((NULL DRIVE:NAME.TYPE)
(if there is an active CIF, close the file for input)
(SETQ RDS NIL) )
((SYMBOLP DRIVE:NAME.TYPE)
((if the file DRIVE:NAME.TYPE is already open)
(make DRIVE:NAME.TYPE the active CIF)
(SETQ RDS DRIVE:NAME.TYPE) )
((if the file DRIVE:NAME.TYPE exists)
(open DRIVE:NAME.TYPE for input)
(make DRIVE:NAME.TYPE the active CIF)
(zero the file's read pointer)
(SETQ RDS DRIVE:NAME.TYPE) )
(SETQ RDS NIL) )
(SETQ RDS NIL) )

(RDS 'D:ANIMAL) --> D:ANIMAL ; Makes D:ANIMAL.LSP the CIS



RDS: NIL Control variable

ЋЎлз­® дг­ЄжЁп RDS ®бгйҐбвў«пҐв Є®­ва®«м Ёбв®з­ЁЄ  ¤«п ўў®¤ 
н«Ґ¬Ґ­в®ў ў Їа®Ја ¬¬л muLISP. Ћ¤­ Є®, Ї®б«Ґ бзЁвлў ­Ёп з бвЁ
д ©«  ¬®¦Ґв ў®§­ЁЄ­гвм ­Ґ®Ўе®¤Ё¬®бвм ўаҐ¬Ґ­­® ЇҐаҐЄ«озЁвмбп ­ 
ўў®¤ б Є®­б®«Ё, ЇаҐаў ў з⥭ЁҐ д ©« . ’ Єго ў®§¬®¦­®бвм
®ЎҐбЇҐзЁў Ґв Є®­ва®«м­ п ЇҐаҐ¬Ґ­­ п RDS.
Џ®б«Ґ ЁбЇ®«м§®ў ­Ёп дг­ЄжЁЁ RDS ¤«п ®вЄалвЁп д ©«  Ё
гбв ­®ўЄЁ ҐЈ® ў Є зҐб⢥ CIF, Є®­б®«м ¬Ґ¦Ґв бв вм CIS ЎҐ§
Ё§¬Ґ­Ґ­Ёп CIF Ї®б।бвў®¬ ЇаЁбў Ёў ­Ёп Є®­ва®«м­®© ЇҐаҐ¬Ґ­­®© RDS
§­ зҐ­Ёп NIL. Џ®б«Ґ¤го饥 §­ зҐ­ЁҐ RDS, ®в«Ёз­®Ґ ®в NIL, ®Їпвм
ᤥ« Ґв CIF CIS-®¬, Ё з⥭ЁҐ д ©«  ў®§ўЎ­®ўЁвбп б в®Ј® ¬Ґбв , ­ 
Є®в®а®¬ ®­® Ўл«® ЇаЁ®бв ­®ў«Ґ­®.




INPUTFILE [drive:name.type] Function

(INPUTFILE) ў®§ўа й Ґв Ё¬п CIF ў ўЁ¤Ґ бЁ¬ў®«  ў д®а¬Ґ
"гбва®©бвў®:Ё¬п.вЁЇ".
…б«Ё <гбва®©бвў®:Ё¬п.вЁЇ> - ®вЄалвл© ўе®¤­®© д ©«,
(INPUTFILE гбва®©бвў®:Ё¬п.вЁЇ) ў®§ўа й Ґв ’, ў Їа®вЁў­®¬ б«гз Ґ
ў®§ўа й Ґвбп NIL. …б«Ё <.вЁЇ> ®вбгвбвўгҐв, в® вЁЇ д ©« 
Ї®« Ј Ґвбп а ў­л¬ "LSP". …б«Ё ®вбгвбвўгҐв <гбва®©бвў®:>, в®
ЎҐаҐвбп ⥪г饥 § аҐЈЁбваЁа®ў ­­®Ґ (logged) гбва®©бвў®.




OPRNFILES [ ] Function

(OPENFILES) ў®§ўа й Ґв бЇЁб®Є Ё¬Ґ­ ®вЄалвле ў ­ бв®пйЁ©
¬®¬Ґ­в ўе®¤­ле Ё ўл室­ле д ©«®ў. Љ ¦¤®Ґ Ё¬п пў«пҐвбп бЁ¬ў®«®¬ ў
д®а¬Ґ "гбва®©бвў®:Ё¬п.вЁЇ".



READPTR [integer] Function

…б«Ё <楫®Ґ зЁб«®> Ґбвм ­®«м Ё«Ё Ї®«®¦ЁвҐ«м­®Ґ 楫®Ґ,
(READPTR 楫.зЁб«®) гбв ­ ў«Ёў Ґв гЄ § вҐ«о з⥭Ёп CIF §­ зҐ­ЁҐ
<楫.зЁб« > Ё ў®§ўа й Ґв ЇаҐ¤л¤г饥 §­ зҐ­ЁҐ гЄ § вҐ«п. …б«Ё
<楫.зЁб«®> - ­Ё ­®«м, ­Ё Ї®«®¦ЁвҐ«м­®Ґ 楫®Ґ, (READPTR
楫.зЁб«®) ў®§ўа й Ґв ⥪г饥 §­ зҐ­ЁҐ гЄ § вҐ«п з⥭Ёп CIF.
(READPTR 'EOF) ў®§ўа й Ґв а §¬Ґа д ©«  CIF ў Ў ©в е. …б«Ё д ©« 
CIF ­Ґв, в® READPTR ў®§ўа й Ґв NIL.
“Є § вҐ«м з⥭Ёп д ©«  ®ЇаҐ¤Ґ«пҐв в® ¬Ґбв® ў д ©«Ґ, ®вЄг¤ 
Ўг¤Ґв бзЁвлў вмбп б«Ґ¤гойЁ© н«Ґ¬Ґ­в. Љ®Ј¤  RDS ®вЄалў Ґв д ©« ¤«п
ўў®¤ , гЄ § вҐ«м з⥭Ёп д ©«  гбв ­ ў«Ёў Ґвбп ў 0. Љ®Ј¤  н«Ґ¬Ґ­в
Ё§ д ©«  бзЁв ­, гЄ § вҐ«м з⥭Ёп д ©«   ўв®¬ вЁзҐбЄЁ
㢥«ЁзЁў Ґвбп. Ћв¬ҐвЁ¬, зв® READPRT а Ў®в Ґв б CIF, ­® ­Ґ б CIS,
Ї®н⮬㠭Ґ®Ўе®¤Ё¬®, зв®Ўл ў Є зҐб⢥ CIS ўлбвгЇ «  Є®­б®«м.
ЏаЁ¬Ґа:
(DEFUN READPTR (N)
((if there is no active CIF) NIL)
((EQ N'EOF)
(return the file size in bytes) )
((AND (INTEGERP N) (>= N 0))
(set the CIF read pointer to N)
(return the CIF's previous read pointer) )
(return the CIF's current read pointer) )

•®а®иЁ¬ ЇаЁ¬Ґа®¬ ЁбЇ®«м§®ў ­Ёп READPTR пў«пҐвбп бЁб⥬ 
®Ўг祭Ёп muLISP. „ ­­ п бЁб⥬  бзЁвлў Ґв Ё ўл¤ Ґв ­  нЄа ­
⥪бвл га®Є®ў, ЁбЇ®«м§гп дг­ЄжЁо READFILE. ’.Є. бЁб⥬ 
®ЎҐбЇҐзЁў Ґв ў®§¬®¦­®бвм Їа®б¬®ва  ЇаҐ¤л¤г饣® нЄа ­ , READFILE
"Їа®в «ЄЁў Ґв" гЄ § вҐ«Ё з⥭Ёп, ®в¬Ґз ойЁҐ Є ¦¤л© нЄа ­, ў б⥪
PRTLST. …б«Ё ®Ўгз ойЁ©бп е®зҐв Ї®б¬®ваҐвм ЇаҐ¤л¤гйЁ© нЄа ­,
®бгйҐбвў«пҐвбп ўл§®ў

(READPTR (POP PRTLST))

Ё гЄ § вҐ«м з⥭Ёп б¤ўЁЈ Ґвбп ­ § ¤ Є ­ з «г нЄа ­ , зв®
Ї®§ў®«пҐв бзЁв вм Ё ўлᢥвЁвм ҐЈ® ҐйҐ а §.



5.13.2. ”г­ЄжЁЁ ўў®¤ .


”г­ЄжЁЁ ўў®¤  ®бгйҐбвў«пов бзЁвлў ­ЁҐ CIS Ё ў®§ўа в ўў®¤ 
CIS. …б«Ё д ©« Ґбвм CIS Ё Ґб«Ё ®бгйҐбвў«пҐвбп Ї®ЇлвЄ  бзЁвлў вм
¤ ­­лҐ §  ЇаҐ¤Ґ« ¬Ё д ©« , ў®§­ЁЄ Ґв ЇаҐалў ­ЁҐ Ї® ®йЁЎЄҐ "Љ®­Ґж
д ©« " ("End-of-file").


READ-CHAR [peek-flag] Function

(READ-CHAR) бзЁвлў Ґв б«Ґ¤гойЁ© н«Ґ¬Ґ­в Ё§ CIS Ё ў®§ўа й Ґв
бЁ¬ў®«, г Є®в®а®Ј® print-Ё¬п б®бв®Ёв Ё§ нв®Ј® бЁ¬ў®« . „«п
㤮Ўбвў  Їа®Ја ¬¬Ёа®ў ­Ёп бЁ¬ў®«, ў®§ўа й Ґ¬л© дг­ЄжЁҐ©
READ-CHAR, Єа®¬Ґ в®Ј®, ЇаЁбў Ёў Ґвбп ЇҐаҐ¬Ґ­­®© RATOM. Ћв¬ҐвЁ¬,
зв® READ-CHAR ўбҐЈ¤  ў®§ўа й Ґв бЁ¬ў®« ¤ ¦Ґ Ґб«Ё бзЁв ­­л©
н«Ґ¬Ґ­в Ґбвм ¤ҐбпвЁз­®Ґ зЁб«®.
…б«Ё <peek-flag> ­Ґ а ўҐ­ NIL, (READ-CHAR peek-flag) в Є ¦Ґ
бзЁвлў Ґв ®¤Ё­ н«Ґ¬Ґ­в, ў®§ўа й п ᮮ⢥вбвўгойЁ© бЁ¬ў®«, Ё
ЇаЁбў Ёў Ґв ҐЈ® ЇҐаҐ¬Ґ­­®© RATOM. Ћ¤­ Є®, н«Ґ¬Ґ­в, бзЁвлў Ґ¬л©
дг­ЄжЁҐ© READ-CHAR, ®бв Ґвбп ў ўҐаегиЄҐ ўе®¤­®Ј® Ї®в®Є , Є®в®ал©
ЁбЇ®«м§гҐвбп дг­ЄжЁп¬Ё READ Ё RATOM (­® ­Ґ дг­ЄжЁҐ© READ-CHAR).
ќв® ¤ Ґв ў®§¬®¦­®бвм ЁбЇ®«м§®ў вм READ-CHAR ¤«п в®Ј®, зв®Ўл
"§ Ј«п¤лў вм ўЇҐаҐ¤" §  ®¤Ё­ н«Ґ¬Ґ­в, Ё § вҐ¬ ЁбЇ®«м§®ў вм READ
Ё«Ё RATOM ¤«п бзЁвлў ­Ёп нв®Ј® н«Ґ¬Ґ­в  Є Є з бвЁ б«Ґ¤го饣®
ўе®¤­®Ј® Ї®в®Є .
ЏаЁ¬Ґа:
(DEFUN READ-CHAR (FLAG)
((a file is CIS and the end-of-file has been reached)
((BREAK (INPUTFILE) "End-of-file") )
(read the next character from the CIS)
(SETQ RATOM (the symbol whose print name is that
character))
((NULL FLAG) RATOM)
(store the character in the function RATOM's input buffer)
RATOM )




UNREAD-CHAR [ ] Function

(UNREAD-CHAR) ў®ббв ­ ў«Ёў Ґв Ї®б«Ґ¤­Ё© н«Ґ¬Ґ­в, бзЁв ­­л©
Ё§ CIS, ў ўҐаегиЄҐ CIS Ё ў®§ўа й Ґв NIL. ’.Є. ¬®¦Ґв Ўлвм
ў®ббв ­®ў«Ґ­ в®«мЄ® Ї®б«Ґ¤­Ё© бзЁв ­­л© н«Ґ¬Ґ­в, ўл§®ў дг­ЄжЁЁ
Ї®ўв®а­® ЎҐ§ ўлЇ®«­Ґ­Ёп ®ЇҐа жЁЁ бзЁвлў ­Ёп ­Ґ Ўг¤Ґв Ё¬Ґвм
१г«мв в .
ЏаЁ¬Ґа:
(DEFUN UNREAD-CHAR ()
(restore the last character read from the CIS to the head
of the input stream)
NIL )

$ (PROG1 (READ-CHAR) (UNREAD-CHAR))COMPUTER
C

$ COMPUTER





PEEK-CHAR [flag] Function

(PEEK-CHAR) бзЁвлў Ґв б«Ґ¤гойЁ© н«Ґ¬Ґ­в Ё§ CIS. (PEEK-CHAR T)
бзЁвлў Ґв н«Ґ¬Ґ­вл Ё§ ¤® вҐе Ї®а, Ї®Є  ўбваҐз Ґвбп ­ҐЇгбв®©
н«Ґ¬Ґ­в. …б«Ё <н«Ґ¬Ґ­в> - бЁ¬ў®«, (PEEK-CHAR н«Ґ¬Ґ­в) бзЁвлў Ґв
н«Ґ¬Ґ­вл Ё§ CIS ¤® вҐе Ї®а, Ї®Є  ­Ґ ўбваҐвЁвбп н«Ґ¬Ґ­в, а ў­л©
ЇҐаў®¬г бЁ¬ў®«г ў ђ-Ё¬Ґ­Ё <н«Ґ¬Ґ­в >.
‚® ўбҐе б«гз пе, PEEK-CHAR ў®ббв ­ ў«Ёў Ґв Ї®б«Ґ¤­Ё©
бзЁв ­­л© Ё§ CIS н«Ґ¬Ґ­в ў ўҐаегиЄҐ CIS Ё ў®§ўа й Ґв бЁ¬ў®«, г
Є®в®а®Ј® ђ-Ё¬п б®бв®Ёв Ё§ нв®Ј® н«Ґ¬Ґ­в . „«п 㤮Ўбвў 
Їа®Ја ¬¬Ёа®ў ­Ёп бЁ¬ў®«, ўл¤ ў Ґ¬л© PEEK-CHAR, Єа®¬Ґ в®Ј®,
ЇаЁбў Ёў Ґвбп ЇҐаҐ¬Ґ­­®© RATOM. PEEK-CHAR ўбҐЈ¤  ў®§ўа й Ґв
бЁ¬ў®«, ¤ ¦Ґ Ґб«Ё Ї®б«Ґ¤­Ё© н«Ґ¬Ґ­в - зЁб«®.
ЏаЁ¬Ґа:
(DEFUN PEEK-CHAR (FLAG)
( ((NULL FLAG)
(READ-CHAR) )
((EQ FLAG 'T)
(LOOP
((non-whitespace character (READ-CHAR))) ) )
(LOOP
((EQ (READ-CHAR) (CHAR FLAG 0))) ) )
(UNREAD-CHAR)
RATOM )

$ (PEEK-CHAR)COMPUTER
C

$ COMPUTER

$ (PEEK-CHAR T) COMPUTER
C

$ COMPUTER

$ (PEEK-CHAR 'M) COMPUTER
M

$ MPUTER





CLEAR-INPUT [ ] Function

…б«Ё §  CIS ЎҐаҐвбп Є®­б®«м, Ё ўў®¤ б Є®­б®«Ё ®бгйҐбвў«пҐвбп
¬Ґв®¤®¬ «Ё­Ґ©­®Ј® । ЄвЁа®ў ­Ёп, (CLEAR-INPUT) зЁбвЁв ЎгдҐа
«Ё­Ґ©­®Ј® । ЄвЁа®ў ­Ёп. …б«Ё Є®­б®«м пў«пҐвбп CIS-®¬ Ё ўў®¤ б
Є®­б®«Ё ®бгйҐбвў«пҐвбп ¬Ґв®¤®¬ ЇаЁ¬ЁвЁў­®Ј® (ЈагЎ®Ј®) ўў®¤ ,
CLEAR-INPUT зЁбвЁв ЎгдҐа ЇаЁ¬ЁвЁў­®Ј® (ЈагЎ®Ј®) ўў®¤  (б¬. а §¤Ґ«
5.13.3, Ј¤Ґ а бб¬ ваЁў овбп ¬Ґв®¤л «Ё­Ґ©­®Ј® । ЄвЁа®ў ­Ёп Ё
ЇаЁ¬ЁвЁў­®Ј® ўў®¤ ).
‚ «оЎ®¬ б«гз Ґ, CLEAR-INPUT ў®§ўа й Ґв NIL.
ЏаЁ¬Ґа:
(DEFUN CLEAR-INPUT ()
((NULL RDS)
(clear the console input buffer)
NIL ) )

$ (PROG1 (READ-CHAR) (CLEAR-INPUT))COMPUTER
C





READ-LINE [ ] FUnction

(READ-LINE) бзЁвлў Ґв н«Ґ¬Ґ­вл Ё§ CIS ¤® вҐе Ї®а, Ї®Є  ­Ґ
ўбваҐвЁвбп <return>, Ё ў®§ўа й Ґв бЁ¬ў®« , г Є®в®а®Ј® ђ-Ё¬п
б®бв®Ёв Ё§ ўбҐе бзЁв ­­ле н«Ґ¬Ґ­в®ў, Єа®¬Ґ <return>. READ-LINE
ў®§ўа й Ґв бва®Єг, в®з­® в Єго ¦Ґ, Є Є ®­  Ґбвм, ­Ґ ®вЎа блў п
ЇгбвлҐ ¬Ґбв  Ё«Ё Є®¬¬Ґ­в аЁЁ.
ЏаЁ¬Ґа:
(DEFUN READ-LINE ()
(read characters from the CIS until <return> is read)
(return the symbol whose print name consists of the
characters read) )

$ (READ-LINE) (A B C
(A B C





LISTEN [] Function

…б«Ё CIS ᮤҐа¦Ёв н«Ґ¬Ґ­вл, «®бвгЇ­лҐ ¤«п ўў®¤ , (LISTEN)
ў®§ўа й Ґв ’, ў Їа®вЁў­®¬ б«гз Ґ - NIL.
LISTEN ЁбЇ®«м§гҐвбп ¤«п ®ЇаҐ¤Ґ«Ґ­Ёп б®бв®п­Ёп Ј®в®ў­®бвЁ ¤«п
н«Ґ¬Ґ­в®ў CIS. …б«Ё CIS - нв® Є®­б®«м, ¤ ­­ п дг­ЄжЁп ¬®¦Ґв
ЁбЇ®«м§®ў вмбп ¤«п Їа®ўҐаЄЁ, пў«пҐвбп «Ё н«Ґ¬Ґ­в ¤®бвгЇ­л¬ ¤«п
Ї®«м§®ў вҐ«п. …б«Ё CIS - нв® Ёб室­л© д ©«, ¤ ­­ п дг­ЄжЁп ¬®¦Ґв
ЁбЇ®«м§®ў вмбп ¤«п Їа®ўҐаЄЁ, ¤®бвЁЈ­гв «Ё Є®­Ґж д ©« .
ЏаЁ¬Ґа:
(DEFUN LISTEN ()
((if the CIS has a character available for input) T)
NIL )


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