
Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
NULL [object] Function
…б«Ё <®ЎмҐЄв> Ґбвм Їгбв®© бЇЁб®Є, дгЄжЁп ў®§ўа й Ґв ’,
Ё зҐ - NIL. Џгбв®© (Ё«Ё г«Ґў®©) бЇЁб®Є § ¬ҐпҐвбп бЁ¬ў®«®¬ NIL.
ЏаЁ¬Ґа:
(DEFUN NULL (OBJ)
(EQ OBJ NIL) )
(NULL NIL) --> T
(NULL ()) --> T
(NULL '(NIL)) --> NIL
ZEROP [object] Function
…б«Ё <®ЎмҐЄв> Ґбвм жЁда 0, дгЄжЁп ў®§ўа й Ґв ’, Ё зҐ 0-
NIL.
ЏаЁ¬Ґа:
(DEFUN ZEROP (OBJ)
(AND (NUMBER OBJ) (-OBJ 0)) )
(ZEROP 12) --> NIL
(ZEROP 0) --> T
(ZEROP -41) --> NIL
(ZEROP 3.1416) --> NIL
(ZEROP -7/3) --> NIL
(ZEROP 'DOG) --> NIL
PLUSP [object] Function
…б«Ё <®ЎмҐЄв> Ґбвм Ї®«®¦ЁвҐ«м®Ґ 楫®Ґ, дгЄжЁп ў®§ўа й Ґв
’, Ё зҐ - NIL.
ЏаЁ¬Ґа:
(DEFUN PLUSP (OBJ)
(AND (NUMBER OBJ) (> OBJ 0)) )
(PLUSP 12) --> T
(PLUSP 0) --> NIL
(PLUSP -41) --> NIL
(PLUSP 3.1415) --> T
(PLUSP -7/3) --> NIL
(PLUSP 'DOG) --> NIL
MINUSP [object] Function
…б«Ё <®ЎмҐЄв> - ®ваЁж ⥫쮥 楫®Ґ, дгЄжЁп ў®§ўа й Ґв
’, Ё зҐ - NIL.
ЏаЁ¬Ґа:
(DEFUN MINUSP (OBJ)
(AND (NUMBER OBJ) (< OBJ 0)) )
(MINUSP 12) --> NIL
(MINUSP 0) --> NIL
(MINUSP -41) --> T
(MINUSP 3.1415) --> NIL
(MINUSP -7/3) --> T
(MINUSP 'DOG) --> NIL
ODDP [object] Function
…б«Ё <®ЎмҐЄв> Ґбвм ҐзҐв®Ґ 楫®Ґ, дгЄжЁп ў®§ўа й Ґв ’,
Ё зҐ - NIL.
ЏаЁ¬Ґа:
(DEFUN ODDP (OBJ)
(AND (INTEGERP OBJ) (NOT (ZEROP (LOGAND OBJ 1)))) )
(ODDP 12) --> NIL
(ODDP 0) --> NIL
(ODDP -41) --> T
(ODDP 3.1315) --> NIL
(ODDP -7/3) --> NIL
(ODDP 'DOG) --> NIL
EVENP [object] Function
…б«Ё <®ЎмҐЄв> Ґбвм зҐв®Ґ 楫®Ґ, дгЄжЁп ў®§ўа й Ґв ’, Ё зҐ
- NIL.
ЏаЁ¬Ґа:
(DEFUN EVENP (OBJ)
(AND (INTEGERP OBJ) (ZEROP (LOGAND OBJ 1))) )
(EVENP 12) --> T
(EVENP 0) --> T
(EVENP -41) --> NIL
(EVENP 3.1416) --> NIL
(EVENP -7/3) --> NIL
(EVENP 'DOG) --> NIL
5.5 ”гЄжЁЁ Є®¬Ї а в®а
”гЄжЁЁ Є®¬Ї а в®а - нв® г⢥তҐЁп, ЁбЇ®«м§гҐ¬лҐ ¤«п
ба ўҐЁп ®ЎмҐЄв®ў ¤ ле muLISP. ‚ᥠ®Ё вॡгов 2-е Ё«Ё Ў®«ҐҐ
аЈг¬Ґв®ў Ё, § ЁбЄ«о票Ґ¬ дгЄжЁЁ MEMBER, ў®§ўа й ов § 票Ґ
’ Ё«Ё NIL.
EQ [object1,object2] Function
NEQ [object1,object2] Function
…б«Ё <®ЎмҐЄв1> Ё¤ҐвЁзҐ <®ЎмҐЄвг2>, (EQ ®ЎмҐЄв1 ®ЎмҐЄв2)
ў®§ўа й Ґв ’, Ё зҐ - NIL. ”гЄжЁп (NEQ ®ЎмҐЄв1 ®ЎмҐЄв2)
нЄўЁў «Ґв дгЄжЁЁ (NOT (EQ ®ЎмҐЄв1 ®ЎмҐЄв2)).
EQ Їа®ўҐапҐв Ё¤ҐвЁз®бвм 2 бў®Ёе аЈг¬Ґв (в.Ґ. ®Ё
гЄ §лў ов ®¤Ё Є®ўлҐ ®ЎмҐЄвл ¤ ле ў Ї ¬пвЁ). ’.Є. бЁ¬ў®«л Ё
¬ «лҐ жҐ«лҐ зЁб« (в.Ґ. жҐ«лҐ зЁб« , ¬ҐмиҐ 65536 Ї® Ўб®«ов®©
ўҐ«ЁзЁҐ) ®ЇаҐ¤Ґ«повбп гЁЄ «м®, EQ пў«пҐвбп е®а®иЁ¬ бЇ®б®Ў®¬
®ЇаҐ¤Ґ«ҐЁп, пў«повбп «Ё 2 бЁ¬ў®« Ё«Ё 2 ¬ «ле 楫ле зЁб«
а ўл¬Ё ¤агЈ ¤агЈг.
ЏаЁ¬Ґа:
(DEFUN EQ (OBJ1 OBJ2)
(= (LOCATION OBJ1) (LOCATION OBJ2)) )
(EQ 'Alice 'Alice) --> T
(SETQ FOO '(A B C)) --> (A B C)
(EQ FOO '(A B C)) --> NIL
(SETQ BAR FOO) --> (A B C)
(EQ FOO BAR) --> T
(EQ 7 (+ 3 4)) --> T
(EQ 100000 100000) --> NIL
EQL [object1,object2] Function
NEQL [object1,object2] Function
…б«Ё <®ЎмҐЄв1> Ё¤ҐвЁзҐ <®ЎмҐЄвг2> Ё«Ё Ґб«Ё ®Ў аЈг¬Ґв
пў«повбп зЁб« ¬Ё б ®¤Ё Є®ў¬Ё § 票ﬨ, в® (EQL ®ЎмҐЄв1
®ЎмҐЄв2) ў®§ўа й Ґв ’, Ё зҐ - NIL. (NEQL ®ЎмҐЄв1 ®ЎмҐЄв2)
нЄўЁў «ҐвҐ дгЄжЁЁ (NOT (EQL ®ЎмҐЄв1 ®ЎмҐЄв2)).
’.Є. Ў®«миЁҐ жҐ«лҐ зЁб« (в.Ґ. жҐ«лҐ зЁб« , Ў®«миҐ 65536 Ї®
Ўб®«ов®© ўҐ«ЁзЁҐ) Ё ¤а®ЎлҐ зЁб« Ґ ®ЇаҐ¤Ґ«повбп гЁЄ «м®,
EQL Ї® ба ўҐЁо б EQ ¬®¦Ґв Ўлвм Ј®а §¤® нд䥪⨢ҐҐ ЇаЁ
®ЇаҐ¤Ґ«ҐЁЁ нЄўЁў «Ґв®бвЁ 2-е зЁбҐ«. ЂаЈг¬Ґвл-Ґ ⮬л пў«повбп
нЄўЁў «Ґвл¬Ё в®Ј¤ Ё в®«мЄ® в®Ј¤ , Є®Ј¤ ®Ё гЄ §лў ов
®¤Ё Є®ўлҐ cons-л ў Ї ¬пвЁ.
ЏаЁ¬Ґа:
(DEFUN EQL (OBJ1 OBJ2)
((AND (NUMBERP OBJ1) (NUMBERP OBJ2))
(= OBJ1 OBJ2) )
(= (LOCATION OBJ1) (LOCATION OBJ2)) )
(EQL 'Alice 'Alice) --> T
(EQL 7 (+ 3 4)) --> T
(EQL 100000 100000) --> T
(EQL '(A B) '(A B)) --> NIL
EQUAL [object1,object2] Function
…б«Ё <®ЎмҐЄв1> нЄўЁў «ҐвҐ <®ЎмҐЄвг2>, дгЄжЁп ў®§ўа й Ґв
’, Ё зҐ - NIL.
EQUAL Їа®ўҐапҐв нЄўЁў «Ґв®бвм 2 бў®Ёе аЈг¬Ґв . …б«Ё
®¤Ё Ё«Ё ®Ў аЈг¬Ґв пў«повбп ⮬ ¬Ё, EQUAL а Ў®в Ґв
«®ЈЁз® дгЄжЁЁ EQL. „ў аЈг¬Ґв - ⮬ 室пвбп ў ®в®иҐЁЁ
EQUAL, Ґб«Ё ®Ё пў«повбп Ё§®¬®адл¬Ё бвагЄвга ¬Ё ¤ ле: Ё
car-ўҐвўЁ, Ё cdr-ўҐвўЁ Ґбвм EQUAL. „ўҐ EQUAL-бвагЄвгал ¤ ле ЇаЁ
ЇҐз вЁ Ё§®Ўа ¦ овбп ®¤Ё Є®ў®. ’.Є. EQL а Ў®в Ґв Ўлбв॥, нвг
дгЄжЁо «гзиҐ ЁбЇ®«м§®ў вм ў¬Ґбв® EQUAL в ¬, Ј¤Ґ Ё§ўҐбв®, зв® Ї®
Єа ©Ґ© ¬ҐаҐ ®¤Ё Ё§ аЈг¬Ґв®ў пў«пҐвбп ⮬®¬.
ЏаЁ¬Ґа:
(DEFUN EQUAL (OBJ1 OBJ2)
((ATOM OBJ1)
(EQL OBJ1 OBJ2) )
((ATOM OBJ2) NIL)
((EQUAL (CAR OBJ1) (CDR OBJ2))
(EQUAL )CDR OBJ1) (CDR OBJ2)) ) )
(EQUAL 'A 'A) --> T
(EQUAL '(A B C) '(A B C)) --> T
(EQUAL '(A B C) '(C B A)) --> NIL
MEMBER [object, list,test] Function
MEMBER-IF [test,list] Function
(MEMBER ®ЎмҐЄв бЇЁб®Є вҐбв) ўлЇ®«пҐв «ЁҐ©л© Ї®ЁбЄ ў
<бЇЁбЄҐ> н«Ґ¬Ґв , ¤«п Є®в®а®Ј® ЇаЁ§ Є ба ўҐЁп б <®ЎмҐЄв®¬> Ї®
<вҐбвг> Ґ а ўҐ NIL. …б«Ё <вҐбв>- аЈг¬Ґв Ґбвм NIL Ё«Ё Ґ § ¤ ,
MEMBER ЁбЇ®«м§гҐв EQL-вҐбв.
(MEMBER-IF вҐбв бЇЁб®Є) ўлЇ®«пҐв Ї®ЁбЄ ў <бЇЁбЄҐ> н«Ґ¬Ґв ,
¤«п Є®в®а®Ј® ЇаЁ§ Є Їа®ўҐаЄЁ Ї® <вҐбвг> Ґбвм Ґ NIL. „«п ®ЎҐЁе
дгЄжЁ©, Ґб«Ё н«Ґ¬Ґв, 㤮ў«Ґвў®апойЁ© <вҐбвг>, ©¤Ґ, ўл¤ Ґвбп
еў®бв <бЇЁбЄ >, зЁ п б ¤ ®Ј® н«Ґ¬Ґв . € зҐ ў®§ўа й Ґвбп
NIL.
ЏаЁ¬Ґа:
(DEFUN MEMBER (OBJ LST TEST)
((ATOM LST) NIL)
( ((NULL TEST)
(SETQ TEST 'EQL) )
((FUNCALL TEST OBJ (CAR LST)) LST)
(MEMBER OBJ (CDR LST) TEST) )
(MEMBER 'A '(B C D)) --> NIL
(MEMBER 'A '(B A D)) --> (A D)
(MEMBER-IF 'NUMBERP '(A B 3 C (-7))) --> (3 C (-7))
(MEMBER-IF 'MINUSP '(A B 3 C (-7))) --> NIL
=[n1,n2,...,nM] Function
…б«Ё n1 а ўҐ nM, n2 а ўҐ n3,..., nM-1 а ўҐ nM, в® (=
n1 n2... nM) ў®§ўа й Ґв ’, Ё зҐ - NIL. ”гЄжЁп ўл§лў Ґв
ЇаҐалў ЁҐ "ЌҐзЁб«®ў®© аЈг¬Ґв", Ґб«Ё Є Є®©-«ЁЎ® аЈг¬Ґв Ґ
пў«пҐвбп зЁб«®¬.
ЏаЁ¬Ґа:
(DEFUN = LST
((NULL LST))
((NULL (CDR LST)))
((AND (NUMBER (CAR LST)) (NUMBER CADR LST)))
((numerically equal (CAR LST) (CADR LST))
(APPLY '=(CDR LST)) ) )
((BREAK (LIST '=(CAR LST) ((CADR LST))
'"Nonnumeric argument")
(APPLY '= (CDR LST)) ) )
(= 5 9) --> NIL
(= 4 4 -7) --> NIL
(= 3 3.0) --> T
(= 0.75 6/8) --> T
/= [n1,n2,...,nM] Function
…б«Ё n1 Ґ а ў® n2, n2 Ґ а ў® n3,...,nM-1 Ґ а ў® nM, в®
дгЄжЁп ў®§ўа й Ґв ’, Ё зҐ - NIL. …б«Ё Є Є®©-«ЁЎ® аЈг¬Ґв
Ґ пў«пҐвбп зЁб«®¬, ў®§ЁЄ Ґв ЇаҐалў ЁҐ Ї® ®иЁЎЄҐ
"ЌҐзЁб«®ў®© аЈг¬Ґв".
Ћв¬ҐвЁ¬, зв® Ґб«Ё /= ў®§ўа й Ґв ’, нв® § зЁв, зв® Ґв Ё
®¤®© Ї ал ᬥ¦ле а ўле аЈг¬Ґв®ў. Ћ¤ Є® нв® ¬®¦Ґв Ўлвм Ё ў
⮬ б«гз Ґ, Є®Ј¤ ¤ў аЈг¬Ґв а ўл, ® Ґ пў«повбп ᬥ¦л¬Ё.
ЏаЁ¬Ґа:
(DEFUN /= LST
((NULL LST))
((NULL (CDR LST)))
((AND (NUMBER (CAR LST)) (NUMBER (CADR LST)))
((= (CAR LST) (CADR LST)) NIL)
(APPLY '/= (CDR LST)) )
((BREAK (LIST '/= (CAR LST) (CADR LST))
'Nonnumeric Argument") NIL)
(APPLY '/= (CDR LST)) )
(/= 5 9) --> T
(/= 4 4 -7) --> NIL
(/= 3 3.0) --> NIL
(/= 0.75 6/8) --> NIL
(/= 6 -2 6) --> T
< [n1,n2,...,nM] Function
…б«Ё n1<n2, n2<n3, ... , nM-1<nM, в® дгЄжЁп ў®§ўа й Ґв ’,
Ё зҐ - NIL. …б«Ё Є Є®©-«ЁЎ® аЈг¬Ґв Ґ пў«пҐвбп зЁб«®¬,
в® ў®§ЁЄ Ґв ЇаҐалў ЁҐ Ї® ®иЁЎЄҐ "ЌҐзЁб«®ў®© аЈг¬Ґв".
“⢥তҐЁҐ < 㤮Ў® ЁбЇ®«м§®ў вм ў ⮬ б«гз Ґ, Є®Ј¤ 㦮
®ЇаҐ¤Ґ«Ёвм, «Ґ¦Ёв «Ё зЁб«® ўгваЁ ¤ ®Ј® ЁвҐаў « ; ЇаЁ н⮬ <
ўл§лў Ґвбп б 3-¬п аЈг¬Ґв ¬Ё: зЁб«®¬ Ё Ја Ёж ¬Ё ЁвҐаў « .
Ќ ЇаЁ¬Ґа, Ё¦Ґ Ї®Є § ®, Є Є ®ЇаҐ¤Ґ«Ёвм, пў«пҐвбп «Ё § 票Ґ
CHAR зЁб«®¬, § Ј« ў®© Ё«Ё Їа®ЇЁб®© ЎгЄў®©:
(< 47 (ASCII CHAR) 58)
(< 64 (ASCII CHAR) 91)
(< 96 (ASCII CHAR) 123)
ЏаЁ¬Ґа:
(DEFUN < LST
((NULL LST))
((NULL (CDR LST)))
((AND (NUMBER (CAR LST)) (NUMBER (CADR LST)))
((less than (CAR LST) (CADR LST))
(APPLY '< )CDR LST)) ) )
((BREAK (LIST '< (CAR LST) (CADR LST))
'"Nonnumeric Argument")
(APPLY '< (CDR LST)) ) )
(< 5 9) --> T
(< 4 -7) --> NIL
(< 3 3.0) --> NIL
(< 3/5 2/3) --> T
> [n1,n2,...,nM] Function
…б«Ё n1>n2, n2>n3, ... , nM-1>nM, в® дгЄжЁп ў®§ўа й Ґв ’,
Ё зҐ - NIL. …б«Ё Є Є®©-«ЁЎ® аЈг¬Ґв Ґ пў«пҐвбп зЁб«®¬, в®
ў®§ЁЄ Ґв ЇаҐалў ЁҐ Ї® ®иЁЎЄҐ "ЌҐзЁб«®ў®© аЈг¬Ґв".
ЏаЁ¬Ґа:
(DEFUN > LST
((NULL LST))
((NULL (CDR LST)))
((AND (NUMBER (CAR LST)) (NUMBER (CADR LST)))
((greater than (CAR LST) (CADR LST))
(APPLY '> (CDR LST)) ) )
((BREAK (LIST '> (CAR LST) (CADR LST))
'"Noninteger Argument")
(APPLY '> (CDR LST)) ) )
(> 5 9) --> NIL
(> 4 -7) --> T
(> 3 3.0) --> NIL
(> 3/5 2/3) --> NIL
<= [n1,n2,...,nM] Function
…б«Ё n1<=n2, n2<=n3, ..., nM-1<=nM, в® дгЄжЁп ў®§ўа й Ґв
’, Ё зҐ - NIL. …б«Ё Є Є®©-¤ЁЎ® аЈг¬Ґв Ґ пў«пҐвбп зЁб«®¬,
в® ў®§ЁЄ Ґв ЇаҐалў ЁҐ Ї® ®иЁЎЄҐ "ЌҐзЁб«®ў®© аЈг¬Ґв".
ЏаЁ¬Ґа:
(DEFUN <= LST
((NULL LST))
((NULL (CDR LST)))
((AND (NUMBERP (CAR LST)) (NUMBERP (CADR LST)))
((> (CAR LST) (CADR LST)) NIL)
(APPLY '<= (CDR LST)) )
((BREAK (LIST '<= (CAR LST) (CADR LST))
'"Nonnumeric Argument")
(APPLY '<= (CDR LST)) ) )
(<= 5 9) --> T
(<= 4 -7) --> NIL
(<= 3 3.0) --> T
(<= 3/5 2/3) --> T
>= [n1,n2,...,nM] Function
…б«Ё n1>=n2, n2>=n3, ..., nM-1>=nM, в® дгЄжЁп ў®§ўа й Ґв ’,
Ё зҐ - NIL. „ п дгЄжЁп ЈҐҐаЁагҐв ЇаҐалў ЁҐ Ї® ®иЁЎЄҐ
"ЌҐзЁб«®ў®© аЈг¬Ґв", Ґб«Ё Є Є®©-«ЁЎ® аЈг¬Ґв Ґ пў«пҐвбп
зЁб«®¬.
ЏаЁ¬Ґа:
(DEFUN >= LST ... )
(>= 5 9) --> NIL
(>= 4 -7) --> T
(>= 3 3.0) --> T
(>= 3/5 2/3) --> NIL
Соседние файлы в папке Filp