1 line
1.1 KiB
Plaintext
1 line
1.1 KiB
Plaintext
LOGIC-EXAMPLES
|
|
3
|
|
NOTMEMBER
|
|
(SA LAMBDA (X Y)
|
|
(NOT (MEMBER X Y)))
|
|
SA-MEMBER
|
|
(SA LAMBDA (X Y)
|
|
(MEMBER X Y))
|
|
PRINT-INFO
|
|
(SA LAMBDA (FROM TO)
|
|
(PROGN (FORMAT T "Current room is ~A, enter now room ~A~%%" FROM TO)
|
|
T))
|
|
9
|
|
SEARCH
|
|
(((SEARCH ?FROM ?TO)
|
|
:-
|
|
(LOGIC-ASSERT GOAL (((GOAL ?TO)))
|
|
EXAMPLES)
|
|
(EXPLORE ?FROM ?TO (?FROM))
|
|
(GOAL ?TO)))
|
|
GOAL
|
|
(((GOAL G)))
|
|
PHONE
|
|
(((PHONE G)))
|
|
NOT
|
|
(((NOT ?X)
|
|
:-
|
|
(WFF ?X)
|
|
!
|
|
(FAIL))
|
|
((NOT ?X)))
|
|
LOGIC-MEMBER
|
|
(((LOGIC-MEMBER ?A (?A . ?B))
|
|
:- !)
|
|
((LOGIC-MEMBER ?A (?B . ?C))
|
|
:-
|
|
(LOGIC-MEMBER ?A ?C)))
|
|
DOOR
|
|
(((DOOR A B))
|
|
((DOOR A N))
|
|
((DOOR B M))
|
|
((DOOR B C))
|
|
((DOOR M I))
|
|
((DOOR C D))
|
|
((DOOR D E))
|
|
((DOOR E F))
|
|
((DOOR F H))
|
|
((DOOR H L))
|
|
((DOOR L G)))
|
|
APPEND
|
|
(((APPEND NIL ?Q ?Q))
|
|
((APPEND (?A . ?B)
|
|
?C
|
|
(?A . ?D))
|
|
:-
|
|
(APPEND ?B ?C ?D)))
|
|
IS-THERE-DOOR
|
|
(((IS-THERE-DOOR ?A ?B)
|
|
:-
|
|
(DOOR ?A ?B))
|
|
((IS-THERE-DOOR ?A ?B)
|
|
:-
|
|
(DOOR ?B ?A)))
|
|
EXPLORE
|
|
(((EXPLORE ?X ?X ?START-LIST))
|
|
((EXPLORE ?X ?Y ?START-LIST)
|
|
:-
|
|
(IS-THERE-DOOR ?X ?Z)
|
|
(NOTMEMBER ?Z ?START-LIST)
|
|
(PRINT-INFO ?X ?Z)
|
|
(EXPLORE ?Z ?Y (?Z . ?START-LIST))))
|