
Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
4.3. Џ ЄҐвл ЇаҐалў Ё©
Џ ЄҐвл ЇаҐалў Ё© muLISP ўл§лў овбп ॣ㫨஢騪®¬
ЇаҐалў Ё© ( б¬. а §¤Ґ« 4.4 ) Ё ॣ㫨஢騪®¬ § ¤Ґа¦ЄЁ ®иЁЎ®Є
(б¬. а §¤Ґ« 4.5 ). Љ®Ј¤ ЇаҐалў ЁҐ ў®§ЁЄ Ґв, в® Ї®б«Ґ б®®ЎйҐЁп
® ЇаҐалў ЁЁ Ё«Ё ®Ў ®иЁЎЄҐ нЄа ¤ЁбЇ«Ґп ўлᢥ稢 Ґвбп
Ї®¤бЄ §Є ў ўЁ¤Ґ ®ЇжЁ©:
Continue,Break,Abort,Top-level,Restart,System?
‡ ⥬ бЁб⥬ ¦¤Ґв, Ї®Є Ї®«м§®ў вҐ«м ўлЎҐаҐв ®¤г Ё§ ®ЇжЁ©
Їг⥬ гЄ § Ёп ҐҐ Ё¬ҐЁ ( ‘,‚,Ђ,’,R Ё«Ё S ᮮ⢥вб⢥® ).
Ћв¬ҐвЁ¬, зв® ®ЇжЁЁ ЇҐаҐзЁб«Ґл ў Ї®ап¤ЄҐ гбЁ«ҐЁп Ёе ¤Ґ©бвўЁп.
- Continue ( Їа®¤®«¦Ёвм ): ў®§ўа й Ґв гЇа ў«ҐЁҐ Їа®Ја ¬¬Ґ,
Є®в®а п ўл§ў « ЇаҐалў ЁҐ ( ®бв ®ў ). …б«Ё ЇаЁзЁ®© ЇаҐалў Ёп
Ўл« Є®¬ ¤ ЇаҐалў Ёп, Ї®б« п б Є« ўЁ вгал, в® ўлЇ®«ҐЁҐ
Їа®¤®«¦ Ґвбп, Є Є Ґб«Ё Ўл ЇаҐалў Ёп ( ®бв ®ў ) Ґ Їа®Ё§®и«®.
…б«Ё ЇаҐалў ЁҐ Їа®Ё§®и«® ў १г«мв ⥠§ ¤Ґа¦ЄЁ ®иЁЎЄЁ, ўҐ«ЁзЁ ,
ЇҐаҐ¤ п ЇаЁ ЇаҐалў ЁЁ ॣ㫨஢騪®¬ ®иЁЎ®Є, ў®§ўа й Ґвбп
Є Є § 票Ґ ®иЁЎ®з®© дгЄжЁЁ;
- Break ( ®бв ®ў ): ўаҐ¬Ґ® ЇаЁ®бв ў«Ёў Ґв ўлЇ®«ҐЁҐ
Їа®Ја ¬¬л Ё ўл室Ёв б«Ґ¤гойЁ© Ё¦Ё© га®ўҐм жЁЄ«
"read-eval-print" ( "з⥨Ґ-ўлзЁб«ҐЁҐ-ЇҐз вм" ). ќв® Ї®§ў®«пҐв
Ї®«м§®ў вҐ«о Їа®ўҐаЁвм Ё«Ё ( Ё ) Ё§¬ҐЁвм ⥪гйго б।г muLISP
ЇҐаҐ¤ Їа®¤®«¦ҐЁҐ¬ ўлЇ®«ҐЁп Їа®Ја ¬¬л. „«п ўл室 Ё§ ®бв ®ў Ё
ў®§®Ў®ў«ҐЁп а Ў®вл Їа®Ја ¬¬л ЎҐаЁвҐ
( RETURN )
ўб«Ґ¤ § § Є®¬ ¤®«« а ( б¬. а §¤Ґ« "€вҐадҐ©б Ї®«м§®ў ⥫п" ў
Ј«. 5 ¤«п Ў®«ҐҐ ¤Ґв «м®Ј® Ё§гзҐЁп ЇаЁжЁЇ "read-eval-print" );
- Abort ( ЇаҐалў ЁҐ ): ЇаҐалў Ґв ўлЇ®«ҐЁҐ Їа®Ја ¬¬л,
ЇаЁбў Ёў Ґв д®а¬ «мл¬ Ї а ¬Ґва ¬, а §¬ҐйҐл¬ ў б⥪Ґ
ЇҐаҐ¬Ґле, ЇҐаў® з «млҐ § зҐЁп Ё ў®§ўа й Ґв гЇа ў«ҐЁҐ
⥪гйЁ© га®ўҐм жЁЄ« "read-eval-print". ЋЇаҐ¤Ґ«ҐЁп дгЄжЁ©,
§ 票п бў®©бвў Ё Ј«®Ў «мле ЇҐаҐ¬Ґле ®бв овбп ҐЁ§¬Ґл¬Ё;
- Top-level ( ўҐаеЁ© га®ўҐм ): ЇаҐалў Ґв ўлЇ®«ҐЁҐ
Їа®Ја ¬¬л, ЇаЁбў Ёў Ґв ЇҐаў® з «млҐ § 票п д®а¬ «мл¬
Ї а ¬Ґва ¬, Є®в®алҐ а §¬Ґй овбп ў б⥪Ґ ЇҐаҐ¬Ґле, ўлᢥ稢 Ґв
Є®б®«м ⥪гйЁҐ ўе®¤лҐ Ё ўле®¤лҐ ¤ лҐ (CIS Ё COS) Ё
ў®§ўа й Ґв гЇа ў«ҐЁҐ ўҐа奬г га®ўо жЁЄ« "read-eval-print".
®ЇаҐ¤Ґ«ҐЁп дгЄжЁ©, § 票п бў®©бвў Ё Ј«®Ў «мле ЇҐаҐ¬Ґле
®бв овбп ҐЁ§¬Ґл¬Ё;
- Restart ( Ї®ўв®ал© бв ав ): § Єалў Ґв ўбҐ ®вЄалвлҐ д ©«л,
®вЄ §лў Ґвбп ®в ⥪г饩 б।л muLISP Ё ЁЁжЁЁагҐв ®ўго бЁб⥬г
muLISP. ‚ᥠбўп§Ё ¬Ґ¦¤г ЇҐаҐ¬Ґл¬Ё, дгЄжЁЁ Ё § 票п бў®©бвў ў
⥪г饩 б।Ґ muLISP а §аги овбп;
- Svstem ( бЁб⥬ ): § Єалў Ґв ўбҐ ®вЄалвлҐ д ©«л, § ўҐаи Ґв
ўлЇ®«ҐЁҐ muLISP Ё ў®§ўа й Ґв гЇа ў«ҐЁЇҐ агЄ®ў®¤п饩 Ћ‘.
4.4. ‘Ёб⥬ ЇаҐалў Ё© б Є®б®«Ё
‚ «оЎ®Ґ ўаҐ¬п ў 室Ґ ўлЇ®«ҐЁп Їа®Ја ¬¬л ЁЁжЁЁа®ў п
Ї®«м§®ў ⥫Ґ¬ бЁб⥬ ЇаҐалў Ё© б Є®б®«Ё ¬®¦Ґв ®бв ®ўЁвм
ўлЇ®«ҐЁҐ Їа®Ја ¬¬л Ё ў®§ўа вЁв гЇа ў«ҐЁҐ Є®б®«м.
ЏаҐалў ЁҐ б Є®б®«Ё ЁЁжЁЁагҐвбп Їг⥬ ¦ вЁп Є« ўЁиЁ
<ESC> Є« ўЁ вгॠЄ®б®«Ё. …б«Ё Є« ўЁ вгॠҐв Є« ўЁиЁ
<ESC>, в® бЁ¬ў®« ЇаҐалў Ёп ¬®¦Ґв Ўлвм бЈҐҐаЁа®ў Їг⥬ ¦ вЁп
Є« ўЁиЁ «Ґў®© бЄ®ЎЄЁ ([) б ®¤®ўаҐ¬Ґл¬ ¦ вЁҐ¬ Є« ўЁиЁ <CTRL>.
…б«Ё ¦Ґ Ё в Є Ґ Ї®«гз Ґвбп, в® бЁ¬ў®« ¤«п ЈҐҐа жЁЁ ЇаҐалў Ё© б
Є®б®«Ё ¬®¦Ґв Ўлвм Ё§¬ҐҐ Їг⥬ ¬®¤ЁдЁЄ жЁЁ Default Readtable
®б®ў®© бва Ёжл muLISP ( б¬. Ј« ўг 9 ).
ЏаЁ ў®§ЁЄ®ўҐЁЁ ЇаҐалў Ёп б Є®б®«Ё нЄа Ґ Є®б®«Ё
ўлᢥ稢 Ґвбп б®®ЎйҐЁҐ:
Console Interrupt Break: NIL
‡ Ё¬ б«Ґ¤го饩 бва®ЄҐ Ї®пў«пҐвбп Ї®¤бЄ §Є ў ўЁ¤Ґ ®ЇжЁ©
ЇаҐалў Ёп ( б¬. а §¤Ґ« 4.3 ). Џ®«м§®ў вҐ«м ¬®¦Ґв § ⥬ аҐиЁвм,
Є Є Їа®¤®«¦Ёвм а Ў®вг.
…б«Ё Ї® ҐЄ®в®ал¬ ЇаЁзЁ ¬ Ґв ®вўҐв ЇаҐалў ЁҐ б
Є« ўЁ вгал, ў®§¬®¦® ®бгиҐбвўЁвм ЇаҐалў ЁҐ ў бЁб⥬Ґ
Їг⥬ ЇҐаҐЄ«озҐЁп ќ‚Њ ( е®вп нв® ўбҐЈ¤ Ґ¦Ґ« вҐ«м® ).
4.5. ‘®®ЎйҐЁп ®Ў ®иЁЎЄ е
‚ ¤ ®¬ а §¤Ґ«Ґ ЇаЁў®¤пвбп б®®ЎйҐЁп ®Ў ®иЁЎЄ е ў бЁб⥬Ґ
muLISP, в Є¦Ґ ®ЇжЁЁ, Ё¬ҐойЁҐбп ў а бЇ®а殮ЁЁ Ї®«м§®ў вҐ«п ЇаЁ
Ї®пў«ҐЁЁ ®иЁЎ®Є.
Љ®Ј¤ muLISP ®Ў аг¦Ёў Ґв ®иЁЎ®з®Ґ б®бв®пЁҐ, ўл§лў Ґвбп
дгЄжЁп BREAK. BREAK ўл¤ Ґв ᮮ⢥вбвўго饥 б®®ЎйҐЁҐ ®Ў ®иЁЎЄҐ,
ЇаЁ®бв ў«Ёў Ґв ўлЇ®«ҐЁҐ Їа®Ја ¬¬л Ё ®ЎҐбЇҐзЁў Ґв Ї®«м§®ў ⥫п
®ЇжЁп¬Ё Їа®¤®«¦ҐЁп а Ў®вл ўлЎ®а ( б¬. а §¤Ґ« 4.3 ).
ЌЁ¦Ґ ў «д ўЁв®¬ Ї®ап¤ЄҐ ЇаЁўҐ¤Ґл б®®ЎйҐЁп ®Ў ®иЁЎЄ е
muLISP:
- DISK FULL ( ¤ЁбЄ Ї®«л© ): ®§ з Ґв, зв® Ї ¬пвЁ ¤«п
а §¬ҐйҐЁп ¤ ле, § ЇЁб ле ¤ЁбЄ®ў®¬ д ©«Ґ, Ґ еў в Ґв.
‚лЇ®«ҐЁҐ Їа®Ја ¬¬л ЇаҐЄа й Ґвбп, Ё ў®§ЁЄ Ґв ЇаҐалў ЁҐ Ї®
®иЁЎЄҐ. ’.Є. д ©« ®бв Ґвбп ®вЄалвл¬, Ё¬ҐҐвбп ў®§¬®¦®бвм бвҐаҐвм
Ё ¤агЈЁҐ д ©«л ўбҐ© ¤ЁбЄҐвҐ ( б Ї®¬®ймо дгЄжЁЁ EXETUTE ) Ё
Їа®¤®«¦Ёвм § ЇЁбм ў д ©«;
- END-OF-FILE ( Є®Ґж д ©« ): ®§ з Ґв, зв® Ўл« ᤥ«
Ї®ЇлвЄ бзЁв вм ¤ лҐ § ЇаҐ¤Ґ« ¬Ё Є®ж ўе®¤®Ј® д ©« ( CIF )
Ё«Ё Ё§ ҐЈ® Їгбвле ¬Ґбв ( б¬. дгЄжЁо WRITEPTR ў Ј«. 5, Ј¤Ґ
а бб¬ ваЁў Ґвбп Ї®пвЁҐ "Їгбвле ¬Ґбв" ў § ЇЁб ®¬ д ©«Ґ ).
‘«Ґ¤®¬ § б®®ЎйҐЁҐ¬ "end-of-file" ўлᢥ稢 Ґвбп Ё¬п CIF ў ўЁ¤Ґ
бЇЁбЄ вЁЇ : "drive:name.type";
- FILE NOT FOUND ( д ©« Ґ ©¤Ґ ): ®§ з Ґв, зв® Ёб室л©
Ё ( Ё«Ё ) SYS-д ©«, гЄ § л© ў Є®¬ ¤ е Ћ‘, ЁЁжЁЁагойЁе muLISP,
Ґ ©¤Ґ, Ё«Ё SYS-д ©« ҐЇа ўЁ«м®© ўҐабЁЁ. SYS-д ©« ¬®¦Ґв Ўлвм
§ Ја㦥 в®«мЄ® Ї®¤ гЇа ў«ҐЁҐ¬ в®© ўҐабЁЁ muLISP, Є®в®а п
ЁбЇ®«м§гҐвбп ¤«п б®еа ҐЁп д ©« . ‚ Ј«. 2 ®ЇЁб ®, Є Є § Јаг¦ вм
д ©«л б ЁбЇ®«м§®ў ЁҐ¬ Є®¬ ¤ Ћ‘.
€бе®¤лҐ Ё SYS-д ©«л, Єа®¬Ґ в®Ј®, ¬®Јгв Ўлвм § Јаг¦Ґл ў
muLISP б ЁбЇ®«м§®ў ЁҐ¬ Є®¬ ¤ RDS Ё LOAD ᮮ⢥вб⢥®. Љ®Ј¤
®¤ Ё§ нвЁе Є®¬ ¤ § ўҐаи Ґвбп, д ©« Ґ ©¤Ґ, ў¬Ґбв®
б®®ЎйҐЁп "file not found" Є®¬ ¤ ў®§ўа й Ґв ЇаЁ§ Є NIL;
- INSUFFICIENT ARGUMENTS ( Ґ¤®бв в®з®Ґ Є®«ЁзҐбвў®
аЈг¬Ґв®ў ): ®§ з Ґв, зв® дгЄжЁп, вॡгой п Ї® Єа ©Ґ© ¬ҐаҐ
®¤®Ј® аЈг¬Ґв , ўл§лў Ґвбп ЎҐ§ аЈг¬Ґв®ў. ”гЄжЁп¬Ё, Є®в®алҐ
¬®Јгв ўл§ў вм нв®в вЁЇ ®иЁЎЄЁ, пў«повбп:
MAX,MIN,-,/,ADD1,SUB1,LCM,ABS,SIGNUM,NUMERATOR,DENOMINATOR,FLOOR,
CEILING,TRUNCATE,ROUND,MJD,REM,DIVIDE,LOGNOT,BITLENGTH Ё SHIFT;
- INSUFFICIENT MEMORY, ABORTING ( Ґ¤®бв в®з®Ґ Є®«ЁзҐбвў®
Ї ¬пвЁ, ЇаҐалў ЁҐ ): ®§ з Ґв, зв® Ё¬ҐҐв ¬Ґбв® Ґеў вЄ Ї ¬пвЁ
¤«п § Јаг§ЄЁ Ё дгЄжЁ®Ёа®ў Ёп б।л muLISP. ђ Ў®в muLISP
ЇаЁ®бв ў«Ёў Ґвбп, Ё гЇа ў«ҐЁҐ ў®§ўа й Ґвбп Є гЇа ў«по饩 Ћ‘.
Ћв¬ҐвЁ¬, зв® б। muLISP, б®еа 塞 п ў SYS-д ©«Ґ, ¬®¦Ґв
Ўлвм § Ја㦥 ў ќ‚Њ, Ё¬Ґойго ¬ҐмиЁ© ®ЎмҐ¬ Ї ¬пвЁ, 祬 ќ‚Њ,
Є®в®а®© нв б। Ўл« б®§¤ . ЋиЁЎЄ Ї® Ґеў вЄҐ Ї ¬пвЁ
ў®§ЁЄ Ґв в®«мЄ® в®Ј¤ , Є®Ј¤ ќ‚Њ, Є®в®а®© SYS-д ©« Ўл«
§ Ја㦥, Ґ ®Ў« ¤ Ґв ¤®бв в®зл¬ ®ЎмҐ¬®¬ Ї ¬пвЁ ¤«п а §¬ҐйҐЁп
б।л muLISP. …¤ЁбвўҐл© Їгвм § Јаг§ЄЁ SYS-д ©«®ў - нв®
Ї®«г票Ґ Ў®«м襣® ®ЎмҐ¬ Ї ¬пвЁ ¤«п ќ‚Њ.
- MEMORY FULL ( Ї ¬пвм ўбп ): ®§ з Ґв, зв® Ї ¬пвЁ ¤«п
Їа®¤®«¦ҐЁп ўлЇ®«ҐЁп Їа®Ја ¬¬ muLISP Ґ еў в Ґв. ‚лЇ®«ҐЁҐ
Їа®Ја ¬¬ ЇаЁ®бв ў«Ёў Ґвбп, Ё ў®§ЁЄ Ґв ЇаҐалў ЁҐ Ї® ®иЁЎЄҐ.
„Ґ©б⢨⥫м®, бЁб⥬ гЇа ў«ҐЁп Ї ¬пвмо ®ЎҐбЇҐзЁў Ґв
¤®бв в®зл¬ Є®«ЁзҐбвў®¬ Ї ¬пвЁ Є ¦¤го ®Ў« бвм ¤ ле ¤«п Ї®«®Ј®
㤮ў«Ґвў®аҐЁп Ї®вॡ®б⥩ Їа®Ја ¬¬ muLISP. …б«Ё вॡ®ў Ёп
®ЎмҐ¬ Ї ¬пвЁ ¤«п а §¬ҐйҐЁп ®ЎмҐЄв®ў ¤ ле ЇаҐўли ов ўбҐ
¤®бвгЇлҐ аҐбгабл, ў®§ЁЄ Ґв нв ®иЁЎЄ . ‚¬Ґб⥠б б®®ЎйҐЁҐ¬ ®Ў
®иЁЎЄҐ ўлᢥ稢 Ґвбп бв вЁбвЁЄ ў б«Ґ¤го饩 д®а¬Ґ:
GC: nnnn aaaa/aaaa vvvv/vvvv pppp/pppp ssss/ssss tttt/tttt
Ґбв ¤ж вҐаЁзлҐ жЁдал, б«Ґ¤гойЁҐ § "GC:", Ї®Є §лў ов
а §¬Ґа Ї ¬пвЁ, ®б⠢襩бп ў Є ¦¤®© Ё§ ®б®ўле 4-е ®Ў« б⥩
¤ ле. ‘«Ґ¤®ў ⥫м®, ¬®¦Ґв Ўлвм ®ЇаҐ¤Ґ«Ґ ®Ў« бвм ¤ ле,
бўп§ п б ®иЁЎЄ®© ( б¬. а §¤Ґ« "”гЄжЁЁ гЇа ў¤ҐЁп Ї ¬пвмо" ў
Ј«. 5 ¤«п Ї®¤а®Ў®Ј® Ё§гзҐЁп § 票п нв®© бв вЁбвЁЄЁ );
- NONINTEGER ARGUMENT ( ҐжҐ«л© аЈг¬Ґв ): ®§ з Ґв, зв®
дгЄжЁп, вॡгой п 楫ле аЈг¬Ґв®ў, ўл§ў б ҐжҐ«л¬
аЈг¬Ґв®¬. ”гЄжЁЁ, ¤«п Є®в®але нв ®иЁЎЄ ¬®¦Ґв ўбваҐвЁвмбп,
нв®: LOGAND, LOGIOR, LOGXOR, LOGNOT, SHIFT Ё BITLENGTH;
- NONINTEGER ARGUMENT ( ҐзЁб«®ў®© аЈг¬Ґв ): ®§ з Ґв, зв®
дгЄжЁп, вॡгой п зЁб«®ўле аЈг¬Ґв®ў, ўл§ў б ҐзЁб«®ўл¬
аЈг¬Ґв®¬. ’ Є п ®иЁЎЄ ¬®¦Ґв ў®§ЁЄгвм ¤«п б«Ґ¤гойЁе
дгЄжЁ©:=, /=, <, >, <=, >=, MAX, MIN, +, -, *, /, ADD1, SUB1,
INCQ, DECQ, GCD, LCM, ABC, SIGNUM, NUMERATOR, DENOMINATOR, FLOOR,
CEILING, TRUNCATE, ROUND, MOD, REM Ё DIVIDE;
- NONSYMBOLIC ARGUMTNT ( ҐбЁ¬ў®«мл© аЈг¬Ґв ): ®§ з Ґв,
зв® дгЄжЁп, вॡгой п бЁ¬ў®«мле аЈг¬Ґв®ў, ўл§ў б
ҐбЁ¬ў®«мл¬ аЈг¬Ґв®¬. Љ в ЄЁ¬ дгЄжЁп¬ ®в®бпвбп: SET, SETQ,
PSETQ, POP, PUSH, INCQ Ё DECQ;
- SYNTAX ERROR ( бЁв ЄбЁзҐбЄ п ®иЁЎЄ ): ®§ з Ґв, зв®
дгЄжЁп READ ўбваҐвЁ« ¤ЁЎ® «ЁиЁҐ Їа ўлҐ бЄ®ЎЄЁ, «ЁЎ® Ґв®з®бвм
ў в®зҐз®¬ Ё§®Ўа ¦ҐЁЁ, ЇаЁ¬Ґа, (A.) Ё«Ё (AB.CD). ’.Є.
ЇаҐалў ЁҐ Ї® ¤ ®© ®иЁЎЄҐ ЈҐҐаЁагҐвбп ¬ Єа®б®¬ Їа ўле бЄ®Ў®Є
Ё«Ё § Їпвле, ®® ¬®¦Ґв Ўлвм ¬®¤ЁдЁжЁа®ў ®
Ї®«м§®ў ⥫Ґ¬-Їа®ҐЄвЁа®ўйЁЄ®¬;
- UNDIFINED FUNCTION ( Ґ®ЇаҐ¤Ґ«Ґ п дгЄжЁп ): ®§ з Ґв,
зв® Ўл« ᤥ« Ї®ЇлвЄ ЁбЇ®«м§®ў Ёп бЁ¬ў®« , Ґ Ё¬Ґо饣®
®ЇаҐ¤Ґ«ҐЁп дгЄжЁЁ. ЋЎйЁ¬Ё ¤Ґ©бвўЁп¬Ё ЇаЁ Ї®пў«ҐЁЁ нв®© ®иЁЎЄЁ
пў«повбп: ўлЎ®а ®ЇжЁЁ BREAK, ®ЇаҐ¤Ґ«ҐЁҐ Ґ®ЇаҐ¤Ґ«Ґ®Ј® бЁ¬ў®«
Ё Їа®¤®«¦ҐЁҐ Ёб室®© Їа®Ја ¬¬л б Ї®¬®ймо Є®¬ ¤л:
( RETURN ( EVAL BREAK ))
- ZERO DIVIDE ( ¤Ґ«ҐЁҐ 0 ): ®§ з Ґв, зв® Ўл« ўл§ў
дгЄжЁп ¤Ґ«ҐЁп б г«Ґўл¬ ¤Ґ«ЁвҐ«Ґ¬. ’ ЄЁ¬Ё дгЄжЁп¬Ё ¬®Јгв
Ўлвм: /, FLOOR, CEILING, TRUNCATE, ROUND, MOD, REM Ё DIVIDE.
5. ЏаЁ¬ЁвЁўл muLISP
‚ ¤ ®© Ј« ўҐ ¤ Ґвбп ®ЇЁб ЁҐ дгЄжЁ© muLISP, бЇҐжЁ «мле
д®а¬ Ё ЇҐаҐ¬Ґле гЇа ў«ҐЁп, Є®в®алҐ ЇҐаў® з «м® ®ЇаҐ¤Ґ«Ґл
¬ иЁ®¬ п§лЄҐ. ”гЄжЁЁ, ЇҐаҐ¬ҐлҐ гЇа ў«ҐЁп Ё (Ё«Ё) ¬ Єа®бл,
ўе®¤пйЁҐ ў ЇаЁЄ« ¤лҐ Їа®Ја ¬¬л muLISP, ¤®«¦л Ўлвм ®ЇаҐ¤Ґ«Ґл
®б®ўҐ ¤ ле ЇаЁ¬ЁвЁў®ў. „ п Ј« ў ¤Ґ«Ёвбп а §¤Ґ«л,
е а ЄвҐаЁ§гойЁҐ ®в¤Ґ«млҐ ЇаЁ¬ЁвЁўл muLISP.
‡ Ј« ўл¬Ё ЎгЄў ¬Ё ў Є ¦¤®¬ ЇаЁ¬ЁвЁўҐ (ўла ¦ҐЁЁ)
®Ў®§ з овбп ҐЈ® Ё¬п, аЈг¬Ґвл Ё«Ё з «м®Ґ § 票Ґ, Ё вЁЇ.
€¬п ўла ¦ҐЁп § ЇЁблў Ґвбп б«Ґў ў б®Єа 饮¬ ўЁ¤Ґ. …б«Ё
ўла ¦ҐЁҐ Ґбвм дгЄжЁп, § ҐҐ Ё¬ҐҐ¬ б«Ґ¤гҐв бЇЁб®Є Ё¬Ґ ҐҐ
аЈг¬Ґв®ў ( ®в 0 Ё Ў®«миҐ ), § Є«озҐл© ў ЄагЈ«лҐ бЄ®ЎЄЁ. ‘«®ў®
"дгЄжЁп" § ЇЁблў Ґвбп ў Їа ў®¬ Є®жҐ.
…б«Ё ўла ¦ҐЁҐ Ґбвм бЇҐжЁ «м п д®а¬ , § ҐҐ Ё¬ҐҐ¬ б«Ґ¤гҐв
бЇЁб®Є Ё¬Ґ аЈг¬Ґв®ў, § Є«озҐл© ў ЄагЈ«лҐ бЄ®ЎЄЁ. ”а §
"бЇҐжЁ «м п д®а¬ " § ЇЁблў Ґвбп ў Їа ў®¬ Є®жҐ.
‘«Ґ¤®¬ § § Ј« ўл¬Ё ЎгЄў ¬Ё ўла ¦ҐЁп а бЇ®« Ј Ґвбп
®ЇЁб ЁҐ ўла ¦ҐЁп ҐбвҐб⢥®¬ п§лЄҐ. „«п дгЄжЁ© Ё
бЇҐжЁ «мле д®а¬ ®ЇЁб ЁҐ ўЄ«оз Ґв ў бҐЎп ®ЇЁб ЁҐ аЈг¬Ґв®ў,
Є®в®алҐ ®Ё ¤®ЇгбЄ ов, ЇаЁ§ Є , Є®в®ал© ®Ё ў®§ўа й ов, Ё
а §«Ёзле Ї®Ў®зле нд䥪⮢, Є®в®алҐ ®Ё ўл§лў ов. „«п ЇҐаҐ¬Ґле
гЇа ў«ҐЁп ®ЇЁб ЁҐ ўЄ«оз Ґв ў бҐЎп ®ЇЁб ЁҐ Ёе ў®§¤Ґ©бвўЁ©
б।г muLISP.
C«Ґ¤®¬ § ®ЇЁб ЁҐ¬ дгЄжЁ© Ё«Ё бЇҐжЁ «мле д®а¬
ҐбвҐб⢥®¬ п§лЄҐ Ё¤Ґв д®а¬ «м®Ґ ®ЇаҐ¤Ґ«ҐЁҐ ЇаЁ¬ЁвЁў ,
§ ЇЁб ®Ґ muLISP. ”гЄжЁЁ ®ЇаҐ¤Ґ«повбп б Ї®¬®ймо бЇҐжЁ «м®©
д®а¬л ®ЇаҐ¤Ґ«ҐЁп дгЄжЁ© DEFUN. ‘ЇҐжЁ «млҐ д®а¬л ®ЇаҐ¤Ґ«повбп б
Ї®¬®ймо бЇҐжЁ «м®© д®а¬л ¬ Єа®®ЇаҐ¤Ґ«ҐЁп DEFMACRO.
€®Ј¤ ¤«п д®а¬ «м®Ј® ®ЇаҐ¤Ґ«ҐЁп ЇаЁ¬ЁвЁў®ў ЁбЇ®«м§говбп
ўбЇ®¬®Ј ⥫млҐ дгЄжЁЁ. €¬Ґ ўбЇ®¬®Ј ⥫мле дгЄжЁ©
§ ЇЁблў овбп Їа®ЇЁбл¬Ё ЎгЄў ¬Ё; нв® ®Ў®§ з Ґв, зв® ®Ё
Ґ¤®бвгЇл ¤«п Ї®«м§®ў ⥫п. Љ®Ј¤ Ґ®Ўе®¤Ё¬® ўўҐбвЁ Ёб室®Ґ
Ї®пвЁҐ ў д®а¬ «м®Ґ ®ЇаҐ¤Ґ«ҐЁҐ, нв® Ї®пвЁҐ ®ЇЁблў Ґвбп
Ј«Ё©бЄ®¬ п§лЄҐ б ЁбЇ®«м§®ў ЁҐ¬ Їа®ЇЁбле ЎгЄў.
Ќ Є®Ґж, ў Ј« ўҐ ¤ овбп ЇаЁ¬Ґал ЁбЇ®«м§®ў Ёп ЇаЁ¬ЁвЁў®ў
muLISP. ўла ¦ҐЁ©. ЏаЁ§ ЄЁ, ў®§ўа й Ґ¬лҐ дгЄжЁп¬Ё, § ЇЁблў овбп
бЇа ў ®в дгЄжЁЁ б«Ґ¤®¬ § "-->". Љ®¬¬Ґв аЁЁ а бЇ®«®¦Ґл Ї®б«Ґ
в®зЄЁ б § Їпв®© ( в®зЄ б § Їпв®© - нв® а §Ја ЁзЁвҐ«м
Є®¬¬Ґв аЁҐў muLISP ).
5.1. ”гЄжЁЁ ®вЎ®а ( selector f-ns )
Ћб®ў®© бвагЄвга®© ¤ ле ў muLISP пў«пҐвбп ЎЁ ஥
¤ҐаҐў®, б®бв®п饥 Ё§ cons-®ў ( ўҐвўҐ© ) Ё § Є зЁў о饥бп ⮬ ¬Ё
( «Ёбвмп¬Ё ). Ћб®ўлҐ дгЄжЁЁ ®вЎ®а CAR Ё CDR ўлЎЁа ов
ᮮ⢥вб⢥® car ( «Ґўго ) Ё cdr ( Їа ўго ) ўҐвўЁ ¤ҐаҐўмҐў.
CAR [ object ] Function
(CAR object) ў®§ўа й Ґв car-н«Ґ¬Ґв <®ЎмҐЄв > (в.Ґ. ®ЎмҐЄв
¤ ле, Є®в®ал© гЄ §лў Ґв car-н«Ґ¬Ґв <®ЎмҐЄв >).
Љ®а४в п ЁвҐаЇаҐв жЁп car-н«Ґ¬Ґв ®ЎмҐЄв § ўЁбЁв ®в
в®Ј®, пў«пҐвбп «Ё ®ЎмҐЄв ⮬®¬, Ґб«Ё Ґв, а бб¬ ваЁў Ґвбп «Ё
® Є Є бЇЁб®Є Ё«Ё ЎЁ ஥ ¤ҐаҐў®. …б«Ё ®ЎмҐЄв - ⮬, в® ҐЈ®
car-н«Ґ¬Ґв Ґбвм ⥪г饥 § 票Ґ ⮬ . …б«Ё ®ЎмҐЄв - бЇЁб®Є,
ҐЈ® car-н«Ґ¬Ґв Ґбвм ЇҐаўл© н«Ґ¬Ґв бЇЁбЄ . …б«Ё ®ЎмҐЄв -
ЎЁ ஥ ¤ҐаҐў®, ҐЈ® car-н«Ґ¬Ґв Ґбвм «Ґў п ўҐвўм ¤ҐаҐў , Ё«Ё
car-ўҐвўм.
ЏаЁ¬Ґа:
(DEFUN CAR (OBJ)
(the contents of the car cell of OBJ) )
(CAR '(A B C D E)) --> A
(CAR '(A.B) . C)) --> (A.B)
(SETQ NUM 7) --> 7
(CAR 'NUM) --> 7
CDR [ object ] Function
(CDR object) ў®§ўа й Ґв cdr-н«Ґ¬Ґв <®ЎмҐЄв > (в.Ґ. ®ЎмҐЄв
¤ ле, Є®в®ал© гЄ §лў Ґв cdr-н«Ґ¬Ґв <®ЎмҐЄв >).
Љ®а४в п ЁвҐаЇаҐв жЁп cdr-н«Ґ¬Ґв ®ЎмҐЄв н ўЁбЁв ®в
в®Ј®, пў«пҐвбп «Ё ®ЎмҐЄв ⮬®¬, бЇЁбЄ®¬ Ё«Ё ЎЁ ал¬ ¤ҐаҐў®¬.
…б«Ё ®ЎмҐЄв - бЁ¬ў®«, ҐЈ® cdr-н«Ґ¬Ґв Ґбвм бЇЁб®Є бў®©бвў
бЁ¬ў®« . …б«Ё ®ЎмҐЄв - зЁб«®, ҐЈ® cdr-н«Ґ¬Ґв гЄ §лў Ґв ЇаЁ§ Є Ё
вЁЇ зЁб« (б¬. Ј«. 4). …б«Ё ®ЎмҐЄв - бЇЁб®Є, ҐЈ® cdr-н«Ґ¬Ґв Ґбвм
®бв в®Є бЇЁбЄ (в.Ґ. ўбҐ, Єа®¬Ґ Ї®б«Ґ¤ҐЈ®, н«Ґ¬Ґвл бЇЁбЄ ).
…б«Ё ®ЎмҐЄв - ЎЁ ஥ ¤ҐаҐў®, ҐЈ® cdr-н«Ґ¬Ґв Ґбвм Їа ў п ўҐвўм
¤ҐаҐў , Ё«Ё cdr-ўҐвўм.
ЏаЁ¬Ґа:
(DEFUN CDR (OBJ)
(the contents of the cdr cell of OBJ) )
(CDR '(A B C D E)) --> (B C D E)
(CDR '((A.B) . C)) --> C
(CDR 'JOE 'SEX 'MALE) --> MALE
(CDR 'JOE) --> ((SEX . MALE))
CAAR [object] Function
CDAR [object] Function
CDDR [object] Function
CAAAR [object] Function
CDAAR [object] Function
......
CAAAAR [object] Function
......
CDDDDR [object] Function
ђ §аҐи Ґвбп ЁбЇ®«м§®ў вм дгЄжЁЁ, пў«пойЁҐбп Є®¬ЎЁ жЁп¬Ё
CAR Ё CDR. €¬п Є ¦¤®© Ё§ нвЁе дгЄжЁ© зЁ Ґвбп б "‘" Ё
§ Є зЁў Ґвбп "R". ЊҐ¦¤г Ё¬Ё а бЇ®« Ј Ґвбп Ї®б«Ґ¤®ў ⥫м®бвм
Ё§ ЎгЄў "Ђ" Ё "D", гЄ §лў ойЁе, Є Є Є®¬ЎЁЁаговбп CAR Ё CDR ЇаЁ
ўлЇ®«ҐЁЁ дгЄжЁЁ.
ђ бᬮваЁ¬ вЁЇЁзлҐ ®ЇаҐ¤Ґ«ҐЁп ¤«п б®бв ўле дгЄжЁ© ®вЎ®а :
(DEFUN CAAR (OBJ)
(CAR (CAR OBJ)) )
(DEFUN CADDR (OBJ)
(CAR (CDR (CDR OBJ))) )
(DEFUN CDADAR (OBJ)
(CDR (CAR (CDR (CAR OBJ)))) )
(SETQ TREE '((((A.B) . (C . D)) . ((E . F) . (G . H))) .
(((I . J) . (K . L)) . ((M . N) . (O . P)))) )
(CAR TREE) --> (((A . B) . (C . D)) . ((E . F) . (G .
H)))
(CDR TREE) --> (((I . J) . (K . L)) . ((M . N) . (O . P)))
(CAAR TREE) --> ((A . B) . (C . D))
(CDAR TREE) --> ((E . F) . (G . H))
(CADR TREE) --> ((I . J) . (K . L))
........
(CAAAR TREE) --> (A . B)
(CDAAR TREE) --> (C . D)
(CADAR TREE) --> (E . F)
(CDDAR TREE) --> (G . H)
........
(CAAAAR TREE) --> A
(CDAAAR TREE) --> B
(CADAAR TREE) --> C
........
(CDDDDR TREE) --> P
— бв® Ў®«ҐҐ ҐбвҐбвўҐл¬ Ўлў Ґв а бб¬ ваЁў вм ®ЎмҐЄв ¤ ле
Є Є бЇЁб®Є, 祬 Є Є бЁ«м® а §ўҐвў«Ґ®Ґ ЎЁ ஥ ¤ҐаҐў®.
‘«Ґ¤гойЁҐ ᥫҐЄв®ал иЁа®Є® ЁбЇ®«м§говбп ¤«п Ё§ў«ҐзҐЁп н«Ґ¬Ґв®ў
бЇЁбЄ :
(CAR '(A B C D E)) --> A
(CDR '(A B C D E)) --> (B C D E)
(CADR '(A B C D E)) --> B
(CADDR '(A B C D E)) --> C
(CADDDR '(A B C D E)) --> D
„ л¬ бҐ«ҐЄв®а ¬ ¬®Јгв Ўлвм ЇаЁбў®Ґл (Ї® ¦Ґ« Ёо) ¤агЈЁҐ
¬Ґ¬®ЁзҐбЄЁҐ Ё¬Ґ . „«п нв®Ј® ¬®¦® ЁбЇ®«м§®ў вм дгЄжЁо MOVD
(б¬. а §¤Ґ« 5.10), Є®в®а п § ¬ҐЁв (Move) ®ЇаҐ¤Ґ«ҐЁҐ (Definition)
CAR FIRST, CDR REST, CADR SECOND Ё в.¤.
LAST [list] Function
( LAST list ) ў®§ўа й Ґв Ї®б«Ґ¤Ё© ® ўҐа奬 га®ўҐ cons
<бЇЁбЄ >. Ћв¬ҐвЁ¬, зв® LAST ў®§ўа й Ґв Ї®б«Ґ¤Ё© cons, ® Ґ
Ї®б«Ґ¤Ё© н«Ґ¬Ґв <бЇЁбЄ >. …б«Ё <бЇЁб®Є> Ґбвм ⮬, LAST
ў®§ўа й Ґв ЇаЁ§ Є NIL. Љ Є Ї®Є § ® ЇаЁ¬ҐаҐ, Ї®б«Ґ¤Ё©
н«Ґ¬Ґв ¬®¦Ґв Ё§ў«ҐЄ вмбп Їг⥬ ЁбЇ®«м§®ў Ёп дгЄжЁЁ CAR ®в
(LAST list).
ЏаЁ¬Ґа:
(DEFUN KAST (LST)
((ATOM LST) NIL)
((ATOM (CDR LST)) LST)
(LAST (CDR LST)) )
(LAST '(A B C D)) --> (D)
(LAST '(A B C . D)) --> (C . D)
(LAST 'FCO) --> NIL
(CAR (LAST '(A B C))) --> C
NTHCDR [n,list] Function
…б«Ё n - ®«м Ё«Ё Ї®«®¦ЁвҐ«м®Ґ 楫®Ґ, (NTHCDR n list)
ў®§ўа й Ґв n-© cdr <бЇЁбЄ >. NTHCDR ў®§ўа й Ґв NIL, Ґб«Ё n - Ё
0, Ё Ї®«®¦ЁвҐ«м®Ґ 楫®Ґ, Ё«Ё Ґб«Ё <бЇЁб®Є> Ё¬ҐҐв n Ё«Ё ¬ҐмиҐ
н«Ґ¬Ґв®ў.
ЏаЁ¬Ґа:
(DEFUN NTHCDR (N LST)
((ZEROP N) LST)
((AND (INTEGERP N) (PLUSP N))
((ATOM LST) NIL)
(NTHCDR (SUB1 N) (CDR LST)) ) )
(NTHCDR 0 '(A B C D)) --> (A B C D)
(NTHCDR 1 '(A B C D)) --> (B C D)
(NTHCDR 2 '(A B C D)) --> (C D)
(NTHCDR 5 '(A B C D)) --> NIL
(NTHCDR 2 '(A B . C)) --> C
NTH [n,list] Function
…б«Ё n - ®«м Ё«Ё Ї®«®¦ЁвҐ«м®Ґ 楫®Ґ, (NTH n list)
ў®§ўа й Ґв n-© н«Ґ¬Ґв <бЇЁбЄ >, Ј¤Ґ car <бЇЁбЄ > - г«Ґў®©
н«Ґ¬Ґв. NTH ў®§ўа й Ґв NIL, Ґб«Ё n - ®«м, Ё Ї®«®¦ЁвҐ«м®Ґ
楫®Ґ, «ЁЎ® Ґб«Ё <бЇЁб®Є> Ё¬ҐҐв n Ё«Ё ¬ҐмиҐ н«Ґ¬Ґв®ў.
ЏаЁ¬Ґа:
(DEFUN NTH (N LST)
((ATOM (NTHCDR N LST)) NIL)
(CAR (NTHCDR N LST)) )
(NTH 0 '(A B C D)) --> A
(NTH 3 '(A B C D)) --> D
(NTH 4 '(A B C D)) --> NIL
(NTH 2 '(A B . C)) --> NIL
SUBLIST [list,n,m] Function
…б«Ё n Ё m - Ґ®ваЁж ⥫млҐ жҐ«лҐ, Ё n<=m, (SUBLIST list n
m) Є®ЇЁагҐв Ё ўл¤ Ґв б n-Ј® Ї® m-© н«Ґ¬Ґвл <бЇЁбЄ >, Ј¤Ґ
car-н«Ґ¬Ґв <бЇЁбЄ > Ґбвм г«Ґў®© н«Ґ¬Ґв. …б«Ё m - Ґ 楫®Ґ
зЁб«® Ё«Ё Ў®«миҐ Ё«Ё а ў® ¤«Ёл <бЇЁбЄ >, m ЇаЁЁ¬ Ґвбп Є Є
ўҐ«ЁзЁ Ґ¤ЁЁжг ¬ҐмиҐ ¤«Ёл <бЇЁбЄ >. …б«Ё n - Ґ 楫®Ґ
зЁб«®, ®ваЁж ⥫쮥 зЁб«® Ё«Ё n>m, SUBLIST ў®§ўа й Ґв NIL.
ЏаЁ¬Ґа:
(DEFUN SUBLIST (LST N M)
((INTEGERP N)
((INTEGERP M)
(FIRST (ADD1 (-M N)) (NTHCDR N LST)) )
(NTHCDR N LST) ) )
(SUBLIST '(A B C D E F) 2 4) --> (C D E0
(SUBLIST '(A B C D E F) 2 2) --> (C)
(SUBLIST '(A B C D E F) 0 3) --> (A B C D)
(SUBLIST '(A B C D E F) 2) --> (C D E F)
COUNT [object,list,test] Function
COUNT-IF[test,list] Function
(COUNT object list test) ў®§ўа й Ґв Є®«ЁзҐбвў® н¤Ґ¬Ґв®ў ў
<бЇЁбЄҐ>, ¤«п Є®в®але ЇаЁ§ Є ЇаЁ ба ўҐЁЁ б
<®ЎмҐЄв®¬> Ї® <вҐбвг> Ґ а ўҐ NIL. …б«Ё <вҐбв>- аЈг¬Ґв Ґ § ¤
Ё«Ё а ўҐ NIL, COUNT ЁбЇ®«м§гҐв EQL-вҐбв.
(COUNT-IF test list) ў®§ўа й Ґв Є®«ЁзҐбвў® н«Ґ¬Ґв®ў ў
<бЇЁбЄҐ>, ¤«п Є®в®але ЇаЁ§ Є Їа®ўҐаЄЁ Ї® <вҐбвг> - Ґ NIL.
ЏаЁ¬Ґа:
(DEFUN COUNT (OBJ LST TEST)
(count-aux (OBJ LST TEST 0) )
(DEFUN count-aux (OBJ LST TEST COUNTER)
((ATOM LST) COUNTER)
( ((NULL TEST)
(SETQ TEST 'EQL) ) )
((FUNCALL TEST OBJ (CAR LST))
(count-aux OBJ (CDR LST) TEST (ADD1 COUNTER)) )
(count-aux OBJ (CDR LST) TEST COUNTER) )
(COUNT 'DOG '(CAT DOG COW PIG DOG ANT)) --> 2
(COUNT-IF 'EVENP '(3 -6 8 7 0)) --> 3
FIND [object,list,test] Function
FIND-IF [test,list] Function
(FIND ®ЎмҐЄв бЇЁб®Є вҐбв) ўлЇ®«пҐв «ЁҐ©л© Ї®ЁбЄ ў
<бЇЁбЄҐ> в®Ј® н«Ґ¬Ґв , ¤«п Є®в®а®Ј® ЇаЁ§ Є Їа®ўҐаЄЁ б
<®ЎмҐЄв®¬> Ї® <вҐбвг> Ґбвм Ґ NIL. …б«Ё вҐбв- аЈг¬Ґв Ґбвм NIL
Ё«Ё Ґ § ¤ , FIND ЁбЇ®«м§гҐв EQL-вҐбв.
(FIND-IF вҐбв бЇЁб®Є) Ёбб«Ґ¤гҐв <бЇЁб®Є> ¤«п Ї®ЁбЄ
н«Ґ¬Ґв , ¤«п Є®в®а®Ј® ЇаЁ§ Є Їа®ўҐаЄЁ Ї® <вҐбвг> Ґбвм Ґ NIL.
„«п ®ЎҐЁе дгЄжЁ©, Ґб«Ё н«Ґ¬Ґв, 㤮ў«Ґвў®апойЁ© вҐбвг, ©¤Ґ,
¤ л© н«Ґ¬Ґв ўл¤ Ґвбп, ў Їа®вЁў®¬ б«гз Ґ ў®§ўа й Ґвбп NIL.
ЏаЁ¬Ґа:
(DEFUN FIND (OBJ LST TEST)
( (ATOM LST) NIL)
( ((NULL TEST)
(SETQ TEST 'EQL) ) )
( (FUNCALL TEST JBJ (CAR LST))
(CAR LST) )
(FIND OBJ (CDR LST) TEST) )
(FIND 'EAT '(CORN WHEAT OATS RICE) 'FINDSTRING) --> WHEAT
(FIND-IF '(LAMBDA (X) (MINUSP (CDR X)))
'((X . 3) (Y . 0) 9Z . -2/3))) --> (Z . -0.6666666)
POSITION [object,list,test] Function
POSITION-IF [test,list] Function
(POSITION ®ЎмҐЄв бЇЁб®Є вҐбв) ўлЇ®«пҐв «ЁҐ©л© Ї®ЁбЄ ў
<бЇЁбЄҐ> в®Ј® н«Ґ¬Ґв , ¤«п Є®в®а®Ј® ЇаЁ§ Є ба ўҐЁп б
<®ЎмҐЄв®¬> Ї® <вҐбвг> Ґбвм Ґ NIL. …б«Ё вҐбв- аЈг¬Ґв - NIL Ё«Ё
Ґ § ¤ , POSITION ЁбЇ®«м§гҐв EQL-вҐбв.
(POSITION-IF вҐбв бЇЁб®Є) ЁйҐв ў <бЇЁбЄҐ> н«Ґ¬Ґв, ¤«п
Є®в®а®Ј® ЇаЁ§ Є Їа®ўҐаЄЁ Ї® вҐбвг Ґбвм Ґ NIL. „«п ®ЎҐЁе
дгЄжЁ©, Ґб«Ё н«Ґ¬Ґв, 㤮ў«Ґвў®апойЁ© вҐбвг, ©¤Ґ,
ў®§ўа й Ґвбп Ї®ап¤Є®ўл© ®¬Ґа ¤ ®Ј® н«Ґ¬Ґв , зЁ п б 0. ‚
Їа®вЁў®¬ б«гз Ґ ў®§ўа й Ґвбп NIL.
ЏаЁ¬Ґа:
(DEFUN POSITION (OBJ LST TEST)
(position-aux OBJ LST TEST 0) )
(DEFUN position-aux (OBJ LST TEST INDEX)
((ATOM LST) NIL)
( ((NULL TEST)
(SETQ TEST 'EQL) ) )
(FUNCALL TEST OBJ (CAR LST)) INDEX)
(position-aux OBJ (CDR LST) TEST (ADD1 INDEX)
(POSITION '(A B C) '((R S T) (C A B) (A B C))) --> NIL
(POSITION '(A B C) '((R S T) (C A B) (A B C)) 'EQUAL) --> 2
(POSITION-IF 'PLUSP '(-2.5 0 3.7 -5.3)) --> 2
Џ ЄҐвл ЇаҐалў Ё© muLISP ўл§лў овбп ॣ㫨஢騪®¬
ЇаҐалў Ё© ( б¬. а §¤Ґ« 4.4 ) Ё ॣ㫨஢騪®¬ § ¤Ґа¦ЄЁ ®иЁЎ®Є
(б¬. а §¤Ґ« 4.5 ). Љ®Ј¤ ЇаҐалў ЁҐ ў®§ЁЄ Ґв, в® Ї®б«Ґ б®®ЎйҐЁп
® ЇаҐалў ЁЁ Ё«Ё ®Ў ®иЁЎЄҐ нЄа ¤ЁбЇ«Ґп ўлᢥ稢 Ґвбп
Ї®¤бЄ §Є ў ўЁ¤Ґ ®ЇжЁ©:
Continue,Break,Abort,Top-level,Restart,System?
‡ ⥬ бЁб⥬ ¦¤Ґв, Ї®Є Ї®«м§®ў вҐ«м ўлЎҐаҐв ®¤г Ё§ ®ЇжЁ©
Їг⥬ гЄ § Ёп ҐҐ Ё¬ҐЁ ( ‘,‚,Ђ,’,R Ё«Ё S ᮮ⢥вб⢥® ).
Ћв¬ҐвЁ¬, зв® ®ЇжЁЁ ЇҐаҐзЁб«Ґл ў Ї®ап¤ЄҐ гбЁ«ҐЁп Ёе ¤Ґ©бвўЁп.
- Continue ( Їа®¤®«¦Ёвм ): ў®§ўа й Ґв гЇа ў«ҐЁҐ Їа®Ја ¬¬Ґ,
Є®в®а п ўл§ў « ЇаҐалў ЁҐ ( ®бв ®ў ). …б«Ё ЇаЁзЁ®© ЇаҐалў Ёп
Ўл« Є®¬ ¤ ЇаҐалў Ёп, Ї®б« п б Є« ўЁ вгал, в® ўлЇ®«ҐЁҐ
Їа®¤®«¦ Ґвбп, Є Є Ґб«Ё Ўл ЇаҐалў Ёп ( ®бв ®ў ) Ґ Їа®Ё§®и«®.
…б«Ё ЇаҐалў ЁҐ Їа®Ё§®и«® ў १г«мв ⥠§ ¤Ґа¦ЄЁ ®иЁЎЄЁ, ўҐ«ЁзЁ ,
ЇҐаҐ¤ п ЇаЁ ЇаҐалў ЁЁ ॣ㫨஢騪®¬ ®иЁЎ®Є, ў®§ўа й Ґвбп
Є Є § 票Ґ ®иЁЎ®з®© дгЄжЁЁ;
- Break ( ®бв ®ў ): ўаҐ¬Ґ® ЇаЁ®бв ў«Ёў Ґв ўлЇ®«ҐЁҐ
Їа®Ја ¬¬л Ё ўл室Ёв б«Ґ¤гойЁ© Ё¦Ё© га®ўҐм жЁЄ«
"read-eval-print" ( "з⥨Ґ-ўлзЁб«ҐЁҐ-ЇҐз вм" ). ќв® Ї®§ў®«пҐв
Ї®«м§®ў вҐ«о Їа®ўҐаЁвм Ё«Ё ( Ё ) Ё§¬ҐЁвм ⥪гйго б।г muLISP
ЇҐаҐ¤ Їа®¤®«¦ҐЁҐ¬ ўлЇ®«ҐЁп Їа®Ја ¬¬л. „«п ўл室 Ё§ ®бв ®ў Ё
ў®§®Ў®ў«ҐЁп а Ў®вл Їа®Ја ¬¬л ЎҐаЁвҐ
( RETURN )
ўб«Ґ¤ § § Є®¬ ¤®«« а ( б¬. а §¤Ґ« "€вҐадҐ©б Ї®«м§®ў ⥫п" ў
Ј«. 5 ¤«п Ў®«ҐҐ ¤Ґв «м®Ј® Ё§гзҐЁп ЇаЁжЁЇ "read-eval-print" );
- Abort ( ЇаҐалў ЁҐ ): ЇаҐалў Ґв ўлЇ®«ҐЁҐ Їа®Ја ¬¬л,
ЇаЁбў Ёў Ґв д®а¬ «мл¬ Ї а ¬Ґва ¬, а §¬ҐйҐл¬ ў б⥪Ґ
ЇҐаҐ¬Ґле, ЇҐаў® з «млҐ § зҐЁп Ё ў®§ўа й Ґв гЇа ў«ҐЁҐ
⥪гйЁ© га®ўҐм жЁЄ« "read-eval-print". ЋЇаҐ¤Ґ«ҐЁп дгЄжЁ©,
§ 票п бў®©бвў Ё Ј«®Ў «мле ЇҐаҐ¬Ґле ®бв овбп ҐЁ§¬Ґл¬Ё;
- Top-level ( ўҐаеЁ© га®ўҐм ): ЇаҐалў Ґв ўлЇ®«ҐЁҐ
Їа®Ја ¬¬л, ЇаЁбў Ёў Ґв ЇҐаў® з «млҐ § 票п д®а¬ «мл¬
Ї а ¬Ґва ¬, Є®в®алҐ а §¬Ґй овбп ў б⥪Ґ ЇҐаҐ¬Ґле, ўлᢥ稢 Ґв
Є®б®«м ⥪гйЁҐ ўе®¤лҐ Ё ўле®¤лҐ ¤ лҐ (CIS Ё COS) Ё
ў®§ўа й Ґв гЇа ў«ҐЁҐ ўҐа奬г га®ўо жЁЄ« "read-eval-print".
®ЇаҐ¤Ґ«ҐЁп дгЄжЁ©, § 票п бў®©бвў Ё Ј«®Ў «мле ЇҐаҐ¬Ґле
®бв овбп ҐЁ§¬Ґл¬Ё;
- Restart ( Ї®ўв®ал© бв ав ): § Єалў Ґв ўбҐ ®вЄалвлҐ д ©«л,
®вЄ §лў Ґвбп ®в ⥪г饩 б।л muLISP Ё ЁЁжЁЁагҐв ®ўго бЁб⥬г
muLISP. ‚ᥠбўп§Ё ¬Ґ¦¤г ЇҐаҐ¬Ґл¬Ё, дгЄжЁЁ Ё § 票п бў®©бвў ў
⥪г饩 б।Ґ muLISP а §аги овбп;
- Svstem ( бЁб⥬ ): § Єалў Ґв ўбҐ ®вЄалвлҐ д ©«л, § ўҐаи Ґв
ўлЇ®«ҐЁҐ muLISP Ё ў®§ўа й Ґв гЇа ў«ҐЁЇҐ агЄ®ў®¤п饩 Ћ‘.
4.4. ‘Ёб⥬ ЇаҐалў Ё© б Є®б®«Ё
‚ «оЎ®Ґ ўаҐ¬п ў 室Ґ ўлЇ®«ҐЁп Їа®Ја ¬¬л ЁЁжЁЁа®ў п
Ї®«м§®ў ⥫Ґ¬ бЁб⥬ ЇаҐалў Ё© б Є®б®«Ё ¬®¦Ґв ®бв ®ўЁвм
ўлЇ®«ҐЁҐ Їа®Ја ¬¬л Ё ў®§ўа вЁв гЇа ў«ҐЁҐ Є®б®«м.
ЏаҐалў ЁҐ б Є®б®«Ё ЁЁжЁЁагҐвбп Їг⥬ ¦ вЁп Є« ўЁиЁ
<ESC> Є« ўЁ вгॠЄ®б®«Ё. …б«Ё Є« ўЁ вгॠҐв Є« ўЁиЁ
<ESC>, в® бЁ¬ў®« ЇаҐалў Ёп ¬®¦Ґв Ўлвм бЈҐҐаЁа®ў Їг⥬ ¦ вЁп
Є« ўЁиЁ «Ґў®© бЄ®ЎЄЁ ([) б ®¤®ўаҐ¬Ґл¬ ¦ вЁҐ¬ Є« ўЁиЁ <CTRL>.
…б«Ё ¦Ґ Ё в Є Ґ Ї®«гз Ґвбп, в® бЁ¬ў®« ¤«п ЈҐҐа жЁЁ ЇаҐалў Ё© б
Є®б®«Ё ¬®¦Ґв Ўлвм Ё§¬ҐҐ Їг⥬ ¬®¤ЁдЁЄ жЁЁ Default Readtable
®б®ў®© бва Ёжл muLISP ( б¬. Ј« ўг 9 ).
ЏаЁ ў®§ЁЄ®ўҐЁЁ ЇаҐалў Ёп б Є®б®«Ё нЄа Ґ Є®б®«Ё
ўлᢥ稢 Ґвбп б®®ЎйҐЁҐ:
Console Interrupt Break: NIL
‡ Ё¬ б«Ґ¤го饩 бва®ЄҐ Ї®пў«пҐвбп Ї®¤бЄ §Є ў ўЁ¤Ґ ®ЇжЁ©
ЇаҐалў Ёп ( б¬. а §¤Ґ« 4.3 ). Џ®«м§®ў вҐ«м ¬®¦Ґв § ⥬ аҐиЁвм,
Є Є Їа®¤®«¦Ёвм а Ў®вг.
…б«Ё Ї® ҐЄ®в®ал¬ ЇаЁзЁ ¬ Ґв ®вўҐв ЇаҐалў ЁҐ б
Є« ўЁ вгал, ў®§¬®¦® ®бгиҐбвўЁвм ЇаҐалў ЁҐ ў бЁб⥬Ґ
Їг⥬ ЇҐаҐЄ«озҐЁп ќ‚Њ ( е®вп нв® ўбҐЈ¤ Ґ¦Ґ« вҐ«м® ).
4.5. ‘®®ЎйҐЁп ®Ў ®иЁЎЄ е
‚ ¤ ®¬ а §¤Ґ«Ґ ЇаЁў®¤пвбп б®®ЎйҐЁп ®Ў ®иЁЎЄ е ў бЁб⥬Ґ
muLISP, в Є¦Ґ ®ЇжЁЁ, Ё¬ҐойЁҐбп ў а бЇ®а殮ЁЁ Ї®«м§®ў вҐ«п ЇаЁ
Ї®пў«ҐЁЁ ®иЁЎ®Є.
Љ®Ј¤ muLISP ®Ў аг¦Ёў Ґв ®иЁЎ®з®Ґ б®бв®пЁҐ, ўл§лў Ґвбп
дгЄжЁп BREAK. BREAK ўл¤ Ґв ᮮ⢥вбвўго饥 б®®ЎйҐЁҐ ®Ў ®иЁЎЄҐ,
ЇаЁ®бв ў«Ёў Ґв ўлЇ®«ҐЁҐ Їа®Ја ¬¬л Ё ®ЎҐбЇҐзЁў Ґв Ї®«м§®ў ⥫п
®ЇжЁп¬Ё Їа®¤®«¦ҐЁп а Ў®вл ўлЎ®а ( б¬. а §¤Ґ« 4.3 ).
ЌЁ¦Ґ ў «д ўЁв®¬ Ї®ап¤ЄҐ ЇаЁўҐ¤Ґл б®®ЎйҐЁп ®Ў ®иЁЎЄ е
muLISP:
- DISK FULL ( ¤ЁбЄ Ї®«л© ): ®§ з Ґв, зв® Ї ¬пвЁ ¤«п
а §¬ҐйҐЁп ¤ ле, § ЇЁб ле ¤ЁбЄ®ў®¬ д ©«Ґ, Ґ еў в Ґв.
‚лЇ®«ҐЁҐ Їа®Ја ¬¬л ЇаҐЄа й Ґвбп, Ё ў®§ЁЄ Ґв ЇаҐалў ЁҐ Ї®
®иЁЎЄҐ. ’.Є. д ©« ®бв Ґвбп ®вЄалвл¬, Ё¬ҐҐвбп ў®§¬®¦®бвм бвҐаҐвм
Ё ¤агЈЁҐ д ©«л ўбҐ© ¤ЁбЄҐвҐ ( б Ї®¬®ймо дгЄжЁЁ EXETUTE ) Ё
Їа®¤®«¦Ёвм § ЇЁбм ў д ©«;
- END-OF-FILE ( Є®Ґж д ©« ): ®§ з Ґв, зв® Ўл« ᤥ«
Ї®ЇлвЄ бзЁв вм ¤ лҐ § ЇаҐ¤Ґ« ¬Ё Є®ж ўе®¤®Ј® д ©« ( CIF )
Ё«Ё Ё§ ҐЈ® Їгбвле ¬Ґбв ( б¬. дгЄжЁо WRITEPTR ў Ј«. 5, Ј¤Ґ
а бб¬ ваЁў Ґвбп Ї®пвЁҐ "Їгбвле ¬Ґбв" ў § ЇЁб ®¬ д ©«Ґ ).
‘«Ґ¤®¬ § б®®ЎйҐЁҐ¬ "end-of-file" ўлᢥ稢 Ґвбп Ё¬п CIF ў ўЁ¤Ґ
бЇЁбЄ вЁЇ : "drive:name.type";
- FILE NOT FOUND ( д ©« Ґ ©¤Ґ ): ®§ з Ґв, зв® Ёб室л©
Ё ( Ё«Ё ) SYS-д ©«, гЄ § л© ў Є®¬ ¤ е Ћ‘, ЁЁжЁЁагойЁе muLISP,
Ґ ©¤Ґ, Ё«Ё SYS-д ©« ҐЇа ўЁ«м®© ўҐабЁЁ. SYS-д ©« ¬®¦Ґв Ўлвм
§ Ја㦥 в®«мЄ® Ї®¤ гЇа ў«ҐЁҐ¬ в®© ўҐабЁЁ muLISP, Є®в®а п
ЁбЇ®«м§гҐвбп ¤«п б®еа ҐЁп д ©« . ‚ Ј«. 2 ®ЇЁб ®, Є Є § Јаг¦ вм
д ©«л б ЁбЇ®«м§®ў ЁҐ¬ Є®¬ ¤ Ћ‘.
€бе®¤лҐ Ё SYS-д ©«л, Єа®¬Ґ в®Ј®, ¬®Јгв Ўлвм § Јаг¦Ґл ў
muLISP б ЁбЇ®«м§®ў ЁҐ¬ Є®¬ ¤ RDS Ё LOAD ᮮ⢥вб⢥®. Љ®Ј¤
®¤ Ё§ нвЁе Є®¬ ¤ § ўҐаи Ґвбп, д ©« Ґ ©¤Ґ, ў¬Ґбв®
б®®ЎйҐЁп "file not found" Є®¬ ¤ ў®§ўа й Ґв ЇаЁ§ Є NIL;
- INSUFFICIENT ARGUMENTS ( Ґ¤®бв в®з®Ґ Є®«ЁзҐбвў®
аЈг¬Ґв®ў ): ®§ з Ґв, зв® дгЄжЁп, вॡгой п Ї® Єа ©Ґ© ¬ҐаҐ
®¤®Ј® аЈг¬Ґв , ўл§лў Ґвбп ЎҐ§ аЈг¬Ґв®ў. ”гЄжЁп¬Ё, Є®в®алҐ
¬®Јгв ўл§ў вм нв®в вЁЇ ®иЁЎЄЁ, пў«повбп:
MAX,MIN,-,/,ADD1,SUB1,LCM,ABS,SIGNUM,NUMERATOR,DENOMINATOR,FLOOR,
CEILING,TRUNCATE,ROUND,MJD,REM,DIVIDE,LOGNOT,BITLENGTH Ё SHIFT;
- INSUFFICIENT MEMORY, ABORTING ( Ґ¤®бв в®з®Ґ Є®«ЁзҐбвў®
Ї ¬пвЁ, ЇаҐалў ЁҐ ): ®§ з Ґв, зв® Ё¬ҐҐв ¬Ґбв® Ґеў вЄ Ї ¬пвЁ
¤«п § Јаг§ЄЁ Ё дгЄжЁ®Ёа®ў Ёп б।л muLISP. ђ Ў®в muLISP
ЇаЁ®бв ў«Ёў Ґвбп, Ё гЇа ў«ҐЁҐ ў®§ўа й Ґвбп Є гЇа ў«по饩 Ћ‘.
Ћв¬ҐвЁ¬, зв® б। muLISP, б®еа 塞 п ў SYS-д ©«Ґ, ¬®¦Ґв
Ўлвм § Ја㦥 ў ќ‚Њ, Ё¬Ґойго ¬ҐмиЁ© ®ЎмҐ¬ Ї ¬пвЁ, 祬 ќ‚Њ,
Є®в®а®© нв б। Ўл« б®§¤ . ЋиЁЎЄ Ї® Ґеў вЄҐ Ї ¬пвЁ
ў®§ЁЄ Ґв в®«мЄ® в®Ј¤ , Є®Ј¤ ќ‚Њ, Є®в®а®© SYS-д ©« Ўл«
§ Ја㦥, Ґ ®Ў« ¤ Ґв ¤®бв в®зл¬ ®ЎмҐ¬®¬ Ї ¬пвЁ ¤«п а §¬ҐйҐЁп
б।л muLISP. …¤ЁбвўҐл© Їгвм § Јаг§ЄЁ SYS-д ©«®ў - нв®
Ї®«г票Ґ Ў®«м襣® ®ЎмҐ¬ Ї ¬пвЁ ¤«п ќ‚Њ.
- MEMORY FULL ( Ї ¬пвм ўбп ): ®§ з Ґв, зв® Ї ¬пвЁ ¤«п
Їа®¤®«¦ҐЁп ўлЇ®«ҐЁп Їа®Ја ¬¬ muLISP Ґ еў в Ґв. ‚лЇ®«ҐЁҐ
Їа®Ја ¬¬ ЇаЁ®бв ў«Ёў Ґвбп, Ё ў®§ЁЄ Ґв ЇаҐалў ЁҐ Ї® ®иЁЎЄҐ.
„Ґ©б⢨⥫м®, бЁб⥬ гЇа ў«ҐЁп Ї ¬пвмо ®ЎҐбЇҐзЁў Ґв
¤®бв в®зл¬ Є®«ЁзҐбвў®¬ Ї ¬пвЁ Є ¦¤го ®Ў« бвм ¤ ле ¤«п Ї®«®Ј®
㤮ў«Ґвў®аҐЁп Ї®вॡ®б⥩ Їа®Ја ¬¬ muLISP. …б«Ё вॡ®ў Ёп
®ЎмҐ¬ Ї ¬пвЁ ¤«п а §¬ҐйҐЁп ®ЎмҐЄв®ў ¤ ле ЇаҐўли ов ўбҐ
¤®бвгЇлҐ аҐбгабл, ў®§ЁЄ Ґв нв ®иЁЎЄ . ‚¬Ґб⥠б б®®ЎйҐЁҐ¬ ®Ў
®иЁЎЄҐ ўлᢥ稢 Ґвбп бв вЁбвЁЄ ў б«Ґ¤го饩 д®а¬Ґ:
GC: nnnn aaaa/aaaa vvvv/vvvv pppp/pppp ssss/ssss tttt/tttt
Ґбв ¤ж вҐаЁзлҐ жЁдал, б«Ґ¤гойЁҐ § "GC:", Ї®Є §лў ов
а §¬Ґа Ї ¬пвЁ, ®б⠢襩бп ў Є ¦¤®© Ё§ ®б®ўле 4-е ®Ў« б⥩
¤ ле. ‘«Ґ¤®ў ⥫м®, ¬®¦Ґв Ўлвм ®ЇаҐ¤Ґ«Ґ ®Ў« бвм ¤ ле,
бўп§ п б ®иЁЎЄ®© ( б¬. а §¤Ґ« "”гЄжЁЁ гЇа ў¤ҐЁп Ї ¬пвмо" ў
Ј«. 5 ¤«п Ї®¤а®Ў®Ј® Ё§гзҐЁп § 票п нв®© бв вЁбвЁЄЁ );
- NONINTEGER ARGUMENT ( ҐжҐ«л© аЈг¬Ґв ): ®§ з Ґв, зв®
дгЄжЁп, вॡгой п 楫ле аЈг¬Ґв®ў, ўл§ў б ҐжҐ«л¬
аЈг¬Ґв®¬. ”гЄжЁЁ, ¤«п Є®в®але нв ®иЁЎЄ ¬®¦Ґв ўбваҐвЁвмбп,
нв®: LOGAND, LOGIOR, LOGXOR, LOGNOT, SHIFT Ё BITLENGTH;
- NONINTEGER ARGUMENT ( ҐзЁб«®ў®© аЈг¬Ґв ): ®§ з Ґв, зв®
дгЄжЁп, вॡгой п зЁб«®ўле аЈг¬Ґв®ў, ўл§ў б ҐзЁб«®ўл¬
аЈг¬Ґв®¬. ’ Є п ®иЁЎЄ ¬®¦Ґв ў®§ЁЄгвм ¤«п б«Ґ¤гойЁе
дгЄжЁ©:=, /=, <, >, <=, >=, MAX, MIN, +, -, *, /, ADD1, SUB1,
INCQ, DECQ, GCD, LCM, ABC, SIGNUM, NUMERATOR, DENOMINATOR, FLOOR,
CEILING, TRUNCATE, ROUND, MOD, REM Ё DIVIDE;
- NONSYMBOLIC ARGUMTNT ( ҐбЁ¬ў®«мл© аЈг¬Ґв ): ®§ з Ґв,
зв® дгЄжЁп, вॡгой п бЁ¬ў®«мле аЈг¬Ґв®ў, ўл§ў б
ҐбЁ¬ў®«мл¬ аЈг¬Ґв®¬. Љ в ЄЁ¬ дгЄжЁп¬ ®в®бпвбп: SET, SETQ,
PSETQ, POP, PUSH, INCQ Ё DECQ;
- SYNTAX ERROR ( бЁв ЄбЁзҐбЄ п ®иЁЎЄ ): ®§ з Ґв, зв®
дгЄжЁп READ ўбваҐвЁ« ¤ЁЎ® «ЁиЁҐ Їа ўлҐ бЄ®ЎЄЁ, «ЁЎ® Ґв®з®бвм
ў в®зҐз®¬ Ё§®Ўа ¦ҐЁЁ, ЇаЁ¬Ґа, (A.) Ё«Ё (AB.CD). ’.Є.
ЇаҐалў ЁҐ Ї® ¤ ®© ®иЁЎЄҐ ЈҐҐаЁагҐвбп ¬ Єа®б®¬ Їа ўле бЄ®Ў®Є
Ё«Ё § Їпвле, ®® ¬®¦Ґв Ўлвм ¬®¤ЁдЁжЁа®ў ®
Ї®«м§®ў ⥫Ґ¬-Їа®ҐЄвЁа®ўйЁЄ®¬;
- UNDIFINED FUNCTION ( Ґ®ЇаҐ¤Ґ«Ґ п дгЄжЁп ): ®§ з Ґв,
зв® Ўл« ᤥ« Ї®ЇлвЄ ЁбЇ®«м§®ў Ёп бЁ¬ў®« , Ґ Ё¬Ґо饣®
®ЇаҐ¤Ґ«ҐЁп дгЄжЁЁ. ЋЎйЁ¬Ё ¤Ґ©бвўЁп¬Ё ЇаЁ Ї®пў«ҐЁЁ нв®© ®иЁЎЄЁ
пў«повбп: ўлЎ®а ®ЇжЁЁ BREAK, ®ЇаҐ¤Ґ«ҐЁҐ Ґ®ЇаҐ¤Ґ«Ґ®Ј® бЁ¬ў®«
Ё Їа®¤®«¦ҐЁҐ Ёб室®© Їа®Ја ¬¬л б Ї®¬®ймо Є®¬ ¤л:
( RETURN ( EVAL BREAK ))
- ZERO DIVIDE ( ¤Ґ«ҐЁҐ 0 ): ®§ з Ґв, зв® Ўл« ўл§ў
дгЄжЁп ¤Ґ«ҐЁп б г«Ґўл¬ ¤Ґ«ЁвҐ«Ґ¬. ’ ЄЁ¬Ё дгЄжЁп¬Ё ¬®Јгв
Ўлвм: /, FLOOR, CEILING, TRUNCATE, ROUND, MOD, REM Ё DIVIDE.
5. ЏаЁ¬ЁвЁўл muLISP
‚ ¤ ®© Ј« ўҐ ¤ Ґвбп ®ЇЁб ЁҐ дгЄжЁ© muLISP, бЇҐжЁ «мле
д®а¬ Ё ЇҐаҐ¬Ґле гЇа ў«ҐЁп, Є®в®алҐ ЇҐаў® з «м® ®ЇаҐ¤Ґ«Ґл
¬ иЁ®¬ п§лЄҐ. ”гЄжЁЁ, ЇҐаҐ¬ҐлҐ гЇа ў«ҐЁп Ё (Ё«Ё) ¬ Єа®бл,
ўе®¤пйЁҐ ў ЇаЁЄ« ¤лҐ Їа®Ја ¬¬л muLISP, ¤®«¦л Ўлвм ®ЇаҐ¤Ґ«Ґл
®б®ўҐ ¤ ле ЇаЁ¬ЁвЁў®ў. „ п Ј« ў ¤Ґ«Ёвбп а §¤Ґ«л,
е а ЄвҐаЁ§гойЁҐ ®в¤Ґ«млҐ ЇаЁ¬ЁвЁўл muLISP.
‡ Ј« ўл¬Ё ЎгЄў ¬Ё ў Є ¦¤®¬ ЇаЁ¬ЁвЁўҐ (ўла ¦ҐЁЁ)
®Ў®§ з овбп ҐЈ® Ё¬п, аЈг¬Ґвл Ё«Ё з «м®Ґ § 票Ґ, Ё вЁЇ.
€¬п ўла ¦ҐЁп § ЇЁблў Ґвбп б«Ґў ў б®Єа 饮¬ ўЁ¤Ґ. …б«Ё
ўла ¦ҐЁҐ Ґбвм дгЄжЁп, § ҐҐ Ё¬ҐҐ¬ б«Ґ¤гҐв бЇЁб®Є Ё¬Ґ ҐҐ
аЈг¬Ґв®ў ( ®в 0 Ё Ў®«миҐ ), § Є«озҐл© ў ЄагЈ«лҐ бЄ®ЎЄЁ. ‘«®ў®
"дгЄжЁп" § ЇЁблў Ґвбп ў Їа ў®¬ Є®жҐ.
…б«Ё ўла ¦ҐЁҐ Ґбвм бЇҐжЁ «м п д®а¬ , § ҐҐ Ё¬ҐҐ¬ б«Ґ¤гҐв
бЇЁб®Є Ё¬Ґ аЈг¬Ґв®ў, § Є«озҐл© ў ЄагЈ«лҐ бЄ®ЎЄЁ. ”а §
"бЇҐжЁ «м п д®а¬ " § ЇЁблў Ґвбп ў Їа ў®¬ Є®жҐ.
‘«Ґ¤®¬ § § Ј« ўл¬Ё ЎгЄў ¬Ё ўла ¦ҐЁп а бЇ®« Ј Ґвбп
®ЇЁб ЁҐ ўла ¦ҐЁп ҐбвҐб⢥®¬ п§лЄҐ. „«п дгЄжЁ© Ё
бЇҐжЁ «мле д®а¬ ®ЇЁб ЁҐ ўЄ«оз Ґв ў бҐЎп ®ЇЁб ЁҐ аЈг¬Ґв®ў,
Є®в®алҐ ®Ё ¤®ЇгбЄ ов, ЇаЁ§ Є , Є®в®ал© ®Ё ў®§ўа й ов, Ё
а §«Ёзле Ї®Ў®зле нд䥪⮢, Є®в®алҐ ®Ё ўл§лў ов. „«п ЇҐаҐ¬Ґле
гЇа ў«ҐЁп ®ЇЁб ЁҐ ўЄ«оз Ґв ў бҐЎп ®ЇЁб ЁҐ Ёе ў®§¤Ґ©бвўЁ©
б।г muLISP.
C«Ґ¤®¬ § ®ЇЁб ЁҐ¬ дгЄжЁ© Ё«Ё бЇҐжЁ «мле д®а¬
ҐбвҐб⢥®¬ п§лЄҐ Ё¤Ґв д®а¬ «м®Ґ ®ЇаҐ¤Ґ«ҐЁҐ ЇаЁ¬ЁвЁў ,
§ ЇЁб ®Ґ muLISP. ”гЄжЁЁ ®ЇаҐ¤Ґ«повбп б Ї®¬®ймо бЇҐжЁ «м®©
д®а¬л ®ЇаҐ¤Ґ«ҐЁп дгЄжЁ© DEFUN. ‘ЇҐжЁ «млҐ д®а¬л ®ЇаҐ¤Ґ«повбп б
Ї®¬®ймо бЇҐжЁ «м®© д®а¬л ¬ Єа®®ЇаҐ¤Ґ«ҐЁп DEFMACRO.
€®Ј¤ ¤«п д®а¬ «м®Ј® ®ЇаҐ¤Ґ«ҐЁп ЇаЁ¬ЁвЁў®ў ЁбЇ®«м§говбп
ўбЇ®¬®Ј ⥫млҐ дгЄжЁЁ. €¬Ґ ўбЇ®¬®Ј ⥫мле дгЄжЁ©
§ ЇЁблў овбп Їа®ЇЁбл¬Ё ЎгЄў ¬Ё; нв® ®Ў®§ з Ґв, зв® ®Ё
Ґ¤®бвгЇл ¤«п Ї®«м§®ў ⥫п. Љ®Ј¤ Ґ®Ўе®¤Ё¬® ўўҐбвЁ Ёб室®Ґ
Ї®пвЁҐ ў д®а¬ «м®Ґ ®ЇаҐ¤Ґ«ҐЁҐ, нв® Ї®пвЁҐ ®ЇЁблў Ґвбп
Ј«Ё©бЄ®¬ п§лЄҐ б ЁбЇ®«м§®ў ЁҐ¬ Їа®ЇЁбле ЎгЄў.
Ќ Є®Ґж, ў Ј« ўҐ ¤ овбп ЇаЁ¬Ґал ЁбЇ®«м§®ў Ёп ЇаЁ¬ЁвЁў®ў
muLISP. ўла ¦ҐЁ©. ЏаЁ§ ЄЁ, ў®§ўа й Ґ¬лҐ дгЄжЁп¬Ё, § ЇЁблў овбп
бЇа ў ®в дгЄжЁЁ б«Ґ¤®¬ § "-->". Љ®¬¬Ґв аЁЁ а бЇ®«®¦Ґл Ї®б«Ґ
в®зЄЁ б § Їпв®© ( в®зЄ б § Їпв®© - нв® а §Ја ЁзЁвҐ«м
Є®¬¬Ґв аЁҐў muLISP ).
5.1. ”гЄжЁЁ ®вЎ®а ( selector f-ns )
Ћб®ў®© бвагЄвга®© ¤ ле ў muLISP пў«пҐвбп ЎЁ ஥
¤ҐаҐў®, б®бв®п饥 Ё§ cons-®ў ( ўҐвўҐ© ) Ё § Є зЁў о饥бп ⮬ ¬Ё
( «Ёбвмп¬Ё ). Ћб®ўлҐ дгЄжЁЁ ®вЎ®а CAR Ё CDR ўлЎЁа ов
ᮮ⢥вб⢥® car ( «Ґўго ) Ё cdr ( Їа ўго ) ўҐвўЁ ¤ҐаҐўмҐў.
CAR [ object ] Function
(CAR object) ў®§ўа й Ґв car-н«Ґ¬Ґв <®ЎмҐЄв > (в.Ґ. ®ЎмҐЄв
¤ ле, Є®в®ал© гЄ §лў Ґв car-н«Ґ¬Ґв <®ЎмҐЄв >).
Љ®а४в п ЁвҐаЇаҐв жЁп car-н«Ґ¬Ґв ®ЎмҐЄв § ўЁбЁв ®в
в®Ј®, пў«пҐвбп «Ё ®ЎмҐЄв ⮬®¬, Ґб«Ё Ґв, а бб¬ ваЁў Ґвбп «Ё
® Є Є бЇЁб®Є Ё«Ё ЎЁ ஥ ¤ҐаҐў®. …б«Ё ®ЎмҐЄв - ⮬, в® ҐЈ®
car-н«Ґ¬Ґв Ґбвм ⥪г饥 § 票Ґ ⮬ . …б«Ё ®ЎмҐЄв - бЇЁб®Є,
ҐЈ® car-н«Ґ¬Ґв Ґбвм ЇҐаўл© н«Ґ¬Ґв бЇЁбЄ . …б«Ё ®ЎмҐЄв -
ЎЁ ஥ ¤ҐаҐў®, ҐЈ® car-н«Ґ¬Ґв Ґбвм «Ґў п ўҐвўм ¤ҐаҐў , Ё«Ё
car-ўҐвўм.
ЏаЁ¬Ґа:
(DEFUN CAR (OBJ)
(the contents of the car cell of OBJ) )
(CAR '(A B C D E)) --> A
(CAR '(A.B) . C)) --> (A.B)
(SETQ NUM 7) --> 7
(CAR 'NUM) --> 7
CDR [ object ] Function
(CDR object) ў®§ўа й Ґв cdr-н«Ґ¬Ґв <®ЎмҐЄв > (в.Ґ. ®ЎмҐЄв
¤ ле, Є®в®ал© гЄ §лў Ґв cdr-н«Ґ¬Ґв <®ЎмҐЄв >).
Љ®а४в п ЁвҐаЇаҐв жЁп cdr-н«Ґ¬Ґв ®ЎмҐЄв н ўЁбЁв ®в
в®Ј®, пў«пҐвбп «Ё ®ЎмҐЄв ⮬®¬, бЇЁбЄ®¬ Ё«Ё ЎЁ ал¬ ¤ҐаҐў®¬.
…б«Ё ®ЎмҐЄв - бЁ¬ў®«, ҐЈ® cdr-н«Ґ¬Ґв Ґбвм бЇЁб®Є бў®©бвў
бЁ¬ў®« . …б«Ё ®ЎмҐЄв - зЁб«®, ҐЈ® cdr-н«Ґ¬Ґв гЄ §лў Ґв ЇаЁ§ Є Ё
вЁЇ зЁб« (б¬. Ј«. 4). …б«Ё ®ЎмҐЄв - бЇЁб®Є, ҐЈ® cdr-н«Ґ¬Ґв Ґбвм
®бв в®Є бЇЁбЄ (в.Ґ. ўбҐ, Єа®¬Ґ Ї®б«Ґ¤ҐЈ®, н«Ґ¬Ґвл бЇЁбЄ ).
…б«Ё ®ЎмҐЄв - ЎЁ ஥ ¤ҐаҐў®, ҐЈ® cdr-н«Ґ¬Ґв Ґбвм Їа ў п ўҐвўм
¤ҐаҐў , Ё«Ё cdr-ўҐвўм.
ЏаЁ¬Ґа:
(DEFUN CDR (OBJ)
(the contents of the cdr cell of OBJ) )
(CDR '(A B C D E)) --> (B C D E)
(CDR '((A.B) . C)) --> C
(CDR 'JOE 'SEX 'MALE) --> MALE
(CDR 'JOE) --> ((SEX . MALE))
CAAR [object] Function
CDAR [object] Function
CDDR [object] Function
CAAAR [object] Function
CDAAR [object] Function
......
CAAAAR [object] Function
......
CDDDDR [object] Function
ђ §аҐи Ґвбп ЁбЇ®«м§®ў вм дгЄжЁЁ, пў«пойЁҐбп Є®¬ЎЁ жЁп¬Ё
CAR Ё CDR. €¬п Є ¦¤®© Ё§ нвЁе дгЄжЁ© зЁ Ґвбп б "‘" Ё
§ Є зЁў Ґвбп "R". ЊҐ¦¤г Ё¬Ё а бЇ®« Ј Ґвбп Ї®б«Ґ¤®ў ⥫м®бвм
Ё§ ЎгЄў "Ђ" Ё "D", гЄ §лў ойЁе, Є Є Є®¬ЎЁЁаговбп CAR Ё CDR ЇаЁ
ўлЇ®«ҐЁЁ дгЄжЁЁ.
ђ бᬮваЁ¬ вЁЇЁзлҐ ®ЇаҐ¤Ґ«ҐЁп ¤«п б®бв ўле дгЄжЁ© ®вЎ®а :
(DEFUN CAAR (OBJ)
(CAR (CAR OBJ)) )
(DEFUN CADDR (OBJ)
(CAR (CDR (CDR OBJ))) )
(DEFUN CDADAR (OBJ)
(CDR (CAR (CDR (CAR OBJ)))) )
(SETQ TREE '((((A.B) . (C . D)) . ((E . F) . (G . H))) .
(((I . J) . (K . L)) . ((M . N) . (O . P)))) )
(CAR TREE) --> (((A . B) . (C . D)) . ((E . F) . (G .
H)))
(CDR TREE) --> (((I . J) . (K . L)) . ((M . N) . (O . P)))
(CAAR TREE) --> ((A . B) . (C . D))
(CDAR TREE) --> ((E . F) . (G . H))
(CADR TREE) --> ((I . J) . (K . L))
........
(CAAAR TREE) --> (A . B)
(CDAAR TREE) --> (C . D)
(CADAR TREE) --> (E . F)
(CDDAR TREE) --> (G . H)
........
(CAAAAR TREE) --> A
(CDAAAR TREE) --> B
(CADAAR TREE) --> C
........
(CDDDDR TREE) --> P
— бв® Ў®«ҐҐ ҐбвҐбвўҐл¬ Ўлў Ґв а бб¬ ваЁў вм ®ЎмҐЄв ¤ ле
Є Є бЇЁб®Є, 祬 Є Є бЁ«м® а §ўҐвў«Ґ®Ґ ЎЁ ஥ ¤ҐаҐў®.
‘«Ґ¤гойЁҐ ᥫҐЄв®ал иЁа®Є® ЁбЇ®«м§говбп ¤«п Ё§ў«ҐзҐЁп н«Ґ¬Ґв®ў
бЇЁбЄ :
(CAR '(A B C D E)) --> A
(CDR '(A B C D E)) --> (B C D E)
(CADR '(A B C D E)) --> B
(CADDR '(A B C D E)) --> C
(CADDDR '(A B C D E)) --> D
„ л¬ бҐ«ҐЄв®а ¬ ¬®Јгв Ўлвм ЇаЁбў®Ґл (Ї® ¦Ґ« Ёо) ¤агЈЁҐ
¬Ґ¬®ЁзҐбЄЁҐ Ё¬Ґ . „«п нв®Ј® ¬®¦® ЁбЇ®«м§®ў вм дгЄжЁо MOVD
(б¬. а §¤Ґ« 5.10), Є®в®а п § ¬ҐЁв (Move) ®ЇаҐ¤Ґ«ҐЁҐ (Definition)
CAR FIRST, CDR REST, CADR SECOND Ё в.¤.
LAST [list] Function
( LAST list ) ў®§ўа й Ґв Ї®б«Ґ¤Ё© ® ўҐа奬 га®ўҐ cons
<бЇЁбЄ >. Ћв¬ҐвЁ¬, зв® LAST ў®§ўа й Ґв Ї®б«Ґ¤Ё© cons, ® Ґ
Ї®б«Ґ¤Ё© н«Ґ¬Ґв <бЇЁбЄ >. …б«Ё <бЇЁб®Є> Ґбвм ⮬, LAST
ў®§ўа й Ґв ЇаЁ§ Є NIL. Љ Є Ї®Є § ® ЇаЁ¬ҐаҐ, Ї®б«Ґ¤Ё©
н«Ґ¬Ґв ¬®¦Ґв Ё§ў«ҐЄ вмбп Їг⥬ ЁбЇ®«м§®ў Ёп дгЄжЁЁ CAR ®в
(LAST list).
ЏаЁ¬Ґа:
(DEFUN KAST (LST)
((ATOM LST) NIL)
((ATOM (CDR LST)) LST)
(LAST (CDR LST)) )
(LAST '(A B C D)) --> (D)
(LAST '(A B C . D)) --> (C . D)
(LAST 'FCO) --> NIL
(CAR (LAST '(A B C))) --> C
NTHCDR [n,list] Function
…б«Ё n - ®«м Ё«Ё Ї®«®¦ЁвҐ«м®Ґ 楫®Ґ, (NTHCDR n list)
ў®§ўа й Ґв n-© cdr <бЇЁбЄ >. NTHCDR ў®§ўа й Ґв NIL, Ґб«Ё n - Ё
0, Ё Ї®«®¦ЁвҐ«м®Ґ 楫®Ґ, Ё«Ё Ґб«Ё <бЇЁб®Є> Ё¬ҐҐв n Ё«Ё ¬ҐмиҐ
н«Ґ¬Ґв®ў.
ЏаЁ¬Ґа:
(DEFUN NTHCDR (N LST)
((ZEROP N) LST)
((AND (INTEGERP N) (PLUSP N))
((ATOM LST) NIL)
(NTHCDR (SUB1 N) (CDR LST)) ) )
(NTHCDR 0 '(A B C D)) --> (A B C D)
(NTHCDR 1 '(A B C D)) --> (B C D)
(NTHCDR 2 '(A B C D)) --> (C D)
(NTHCDR 5 '(A B C D)) --> NIL
(NTHCDR 2 '(A B . C)) --> C
NTH [n,list] Function
…б«Ё n - ®«м Ё«Ё Ї®«®¦ЁвҐ«м®Ґ 楫®Ґ, (NTH n list)
ў®§ўа й Ґв n-© н«Ґ¬Ґв <бЇЁбЄ >, Ј¤Ґ car <бЇЁбЄ > - г«Ґў®©
н«Ґ¬Ґв. NTH ў®§ўа й Ґв NIL, Ґб«Ё n - ®«м, Ё Ї®«®¦ЁвҐ«м®Ґ
楫®Ґ, «ЁЎ® Ґб«Ё <бЇЁб®Є> Ё¬ҐҐв n Ё«Ё ¬ҐмиҐ н«Ґ¬Ґв®ў.
ЏаЁ¬Ґа:
(DEFUN NTH (N LST)
((ATOM (NTHCDR N LST)) NIL)
(CAR (NTHCDR N LST)) )
(NTH 0 '(A B C D)) --> A
(NTH 3 '(A B C D)) --> D
(NTH 4 '(A B C D)) --> NIL
(NTH 2 '(A B . C)) --> NIL
SUBLIST [list,n,m] Function
…б«Ё n Ё m - Ґ®ваЁж ⥫млҐ жҐ«лҐ, Ё n<=m, (SUBLIST list n
m) Є®ЇЁагҐв Ё ўл¤ Ґв б n-Ј® Ї® m-© н«Ґ¬Ґвл <бЇЁбЄ >, Ј¤Ґ
car-н«Ґ¬Ґв <бЇЁбЄ > Ґбвм г«Ґў®© н«Ґ¬Ґв. …б«Ё m - Ґ 楫®Ґ
зЁб«® Ё«Ё Ў®«миҐ Ё«Ё а ў® ¤«Ёл <бЇЁбЄ >, m ЇаЁЁ¬ Ґвбп Є Є
ўҐ«ЁзЁ Ґ¤ЁЁжг ¬ҐмиҐ ¤«Ёл <бЇЁбЄ >. …б«Ё n - Ґ 楫®Ґ
зЁб«®, ®ваЁж ⥫쮥 зЁб«® Ё«Ё n>m, SUBLIST ў®§ўа й Ґв NIL.
ЏаЁ¬Ґа:
(DEFUN SUBLIST (LST N M)
((INTEGERP N)
((INTEGERP M)
(FIRST (ADD1 (-M N)) (NTHCDR N LST)) )
(NTHCDR N LST) ) )
(SUBLIST '(A B C D E F) 2 4) --> (C D E0
(SUBLIST '(A B C D E F) 2 2) --> (C)
(SUBLIST '(A B C D E F) 0 3) --> (A B C D)
(SUBLIST '(A B C D E F) 2) --> (C D E F)
COUNT [object,list,test] Function
COUNT-IF[test,list] Function
(COUNT object list test) ў®§ўа й Ґв Є®«ЁзҐбвў® н¤Ґ¬Ґв®ў ў
<бЇЁбЄҐ>, ¤«п Є®в®але ЇаЁ§ Є ЇаЁ ба ўҐЁЁ б
<®ЎмҐЄв®¬> Ї® <вҐбвг> Ґ а ўҐ NIL. …б«Ё <вҐбв>- аЈг¬Ґв Ґ § ¤
Ё«Ё а ўҐ NIL, COUNT ЁбЇ®«м§гҐв EQL-вҐбв.
(COUNT-IF test list) ў®§ўа й Ґв Є®«ЁзҐбвў® н«Ґ¬Ґв®ў ў
<бЇЁбЄҐ>, ¤«п Є®в®але ЇаЁ§ Є Їа®ўҐаЄЁ Ї® <вҐбвг> - Ґ NIL.
ЏаЁ¬Ґа:
(DEFUN COUNT (OBJ LST TEST)
(count-aux (OBJ LST TEST 0) )
(DEFUN count-aux (OBJ LST TEST COUNTER)
((ATOM LST) COUNTER)
( ((NULL TEST)
(SETQ TEST 'EQL) ) )
((FUNCALL TEST OBJ (CAR LST))
(count-aux OBJ (CDR LST) TEST (ADD1 COUNTER)) )
(count-aux OBJ (CDR LST) TEST COUNTER) )
(COUNT 'DOG '(CAT DOG COW PIG DOG ANT)) --> 2
(COUNT-IF 'EVENP '(3 -6 8 7 0)) --> 3
FIND [object,list,test] Function
FIND-IF [test,list] Function
(FIND ®ЎмҐЄв бЇЁб®Є вҐбв) ўлЇ®«пҐв «ЁҐ©л© Ї®ЁбЄ ў
<бЇЁбЄҐ> в®Ј® н«Ґ¬Ґв , ¤«п Є®в®а®Ј® ЇаЁ§ Є Їа®ўҐаЄЁ б
<®ЎмҐЄв®¬> Ї® <вҐбвг> Ґбвм Ґ NIL. …б«Ё вҐбв- аЈг¬Ґв Ґбвм NIL
Ё«Ё Ґ § ¤ , FIND ЁбЇ®«м§гҐв EQL-вҐбв.
(FIND-IF вҐбв бЇЁб®Є) Ёбб«Ґ¤гҐв <бЇЁб®Є> ¤«п Ї®ЁбЄ
н«Ґ¬Ґв , ¤«п Є®в®а®Ј® ЇаЁ§ Є Їа®ўҐаЄЁ Ї® <вҐбвг> Ґбвм Ґ NIL.
„«п ®ЎҐЁе дгЄжЁ©, Ґб«Ё н«Ґ¬Ґв, 㤮ў«Ґвў®апойЁ© вҐбвг, ©¤Ґ,
¤ л© н«Ґ¬Ґв ўл¤ Ґвбп, ў Їа®вЁў®¬ б«гз Ґ ў®§ўа й Ґвбп NIL.
ЏаЁ¬Ґа:
(DEFUN FIND (OBJ LST TEST)
( (ATOM LST) NIL)
( ((NULL TEST)
(SETQ TEST 'EQL) ) )
( (FUNCALL TEST JBJ (CAR LST))
(CAR LST) )
(FIND OBJ (CDR LST) TEST) )
(FIND 'EAT '(CORN WHEAT OATS RICE) 'FINDSTRING) --> WHEAT
(FIND-IF '(LAMBDA (X) (MINUSP (CDR X)))
'((X . 3) (Y . 0) 9Z . -2/3))) --> (Z . -0.6666666)
POSITION [object,list,test] Function
POSITION-IF [test,list] Function
(POSITION ®ЎмҐЄв бЇЁб®Є вҐбв) ўлЇ®«пҐв «ЁҐ©л© Ї®ЁбЄ ў
<бЇЁбЄҐ> в®Ј® н«Ґ¬Ґв , ¤«п Є®в®а®Ј® ЇаЁ§ Є ба ўҐЁп б
<®ЎмҐЄв®¬> Ї® <вҐбвг> Ґбвм Ґ NIL. …б«Ё вҐбв- аЈг¬Ґв - NIL Ё«Ё
Ґ § ¤ , POSITION ЁбЇ®«м§гҐв EQL-вҐбв.
(POSITION-IF вҐбв бЇЁб®Є) ЁйҐв ў <бЇЁбЄҐ> н«Ґ¬Ґв, ¤«п
Є®в®а®Ј® ЇаЁ§ Є Їа®ўҐаЄЁ Ї® вҐбвг Ґбвм Ґ NIL. „«п ®ЎҐЁе
дгЄжЁ©, Ґб«Ё н«Ґ¬Ґв, 㤮ў«Ґвў®апойЁ© вҐбвг, ©¤Ґ,
ў®§ўа й Ґвбп Ї®ап¤Є®ўл© ®¬Ґа ¤ ®Ј® н«Ґ¬Ґв , зЁ п б 0. ‚
Їа®вЁў®¬ б«гз Ґ ў®§ўа й Ґвбп NIL.
ЏаЁ¬Ґа:
(DEFUN POSITION (OBJ LST TEST)
(position-aux OBJ LST TEST 0) )
(DEFUN position-aux (OBJ LST TEST INDEX)
((ATOM LST) NIL)
( ((NULL TEST)
(SETQ TEST 'EQL) ) )
(FUNCALL TEST OBJ (CAR LST)) INDEX)
(position-aux OBJ (CDR LST) TEST (ADD1 INDEX)
(POSITION '(A B C) '((R S T) (C A B) (A B C))) --> NIL
(POSITION '(A B C) '((R S T) (C A B) (A B C)) 'EQUAL) --> 2
(POSITION-IF 'PLUSP '(-2.5 0 3.7 -5.3)) --> 2
Соседние файлы в папке Filp