drtest07.exp
来自「NASA 开发使用的一个专家系统」· EXP 代码 · 共 590 行 · 第 1/2 页
EXP
590 行
(do-for-all-instances ((?a USER)) TRUE (send ?a print)) (printout t "Finished." crlf))CLIPS> (clear) ; DR0644CLIPS> (ppdeffunction bad) ; DR0644[PRNTUTIL1] Unable to find deffunction bad.CLIPS> (clear) ; DR0645CLIPS> (deffacts start (result # 0 1 0))CLIPS> (defrule print-responses (result $?input # $?response) => (while (neq ?response (create$)) do (nth 1 ?response) (bind ?response (create$))))CLIPS> (reset) ; DR0645CLIPS> (run) ; DR0645CLIPS> (clear) ; DR0647CLIPS> (defclass A (is-a USER) (slot x (create-accessor read-write))) ; DR0647CLIPS> (defclass B (is-a A)) ; DR0647CLIPS> (describe-class B) ; DR0647================================================================================********************************************************************************Abstract: direct instances of this class cannot be created.Direct Superclasses: AInheritance Precedence: B A USER OBJECTDirect Subclasses:--------------------------------------------------------------------------------SLOTS : FLD DEF PRP ACC STO MCH SRC VIS CRT OVRD-MSG SOURCE(S)x : SGL STC INH RW LCL RCT EXC PRV RW put-x AConstraint information for slots:SLOTS : SYM STR INN INA EXA FTA INT FLTx : + + + + + + + + RNG:[-oo..+oo] --------------------------------------------------------------------------------Recognized message-handlers:init primary in class USERdelete primary in class USERprint primary in class USERdirect-modify primary in class USERmessage-modify primary in class USERdirect-duplicate primary in class USERmessage-duplicate primary in class USERget-x primary in class Aput-x primary in class A********************************************************************************================================================================================CLIPS> (constructs-to-c bug 1) ; DR0647[CSTRNCMP1] WARNING: Constraints are not saved with a constructs-to-c image when dynamic constraint checking is disabled.CLIPS> (describe-class B) ; DR0647================================================================================********************************************************************************Abstract: direct instances of this class cannot be created.Direct Superclasses: AInheritance Precedence: B A USER OBJECTDirect Subclasses:--------------------------------------------------------------------------------SLOTS : FLD DEF PRP ACC STO MCH SRC VIS CRT OVRD-MSG SOURCE(S)x : SGL STC INH RW LCL RCT EXC PRV RW put-x AConstraint information for slots:SLOTS : SYM STR INN INA EXA FTA INT FLTx : + + + + + + + + RNG:[-oo..+oo] --------------------------------------------------------------------------------Recognized message-handlers:init primary in class USERdelete primary in class USERprint primary in class USERdirect-modify primary in class USERmessage-modify primary in class USERdirect-duplicate primary in class USERmessage-duplicate primary in class USERget-x primary in class Aput-x primary in class A********************************************************************************================================================================================CLIPS> (clear) ; DR0648CLIPS> (bsave "none.bin") ; DR0648TRUECLIPS> (deffunction one ()) ; DR0648CLIPS> (bsave "some.bin") ; DR0648TRUECLIPS> (bload "none.bin") ; DR0648TRUECLIPS> (clear) ; DR0649CLIPS> (div a) ; DR0649[ARGACCES4] Function div expected at least 2 argument(s)CLIPS> (div 1) ; DR0649[ARGACCES4] Function div expected at least 2 argument(s)CLIPS> (asin 2) ; DR0649[EMATHFUN1] Domain error for asin function.0.0CLIPS> (atanh 1.0) ; DR0649[EMATHFUN1] Domain error for atanh function.0.0CLIPS> (clear) ; DR0650CLIPS> (deffacts foo) ; DR0650CLIPS> (defrule foo =>) ; DR0650CLIPS> (deftemplate foo) ; DR0650CLIPS> (deffacts *) ; DR0650CLIPS> (defrule * =>) ; DR0650CLIPS> (deftemplate *) ; DR0650CLIPS> (list-deffacts) ; DR0650initial-factfoo*For a total of 3 deffacts.CLIPS> (list-defrules) ; DR0650foo*For a total of 2 defrules.CLIPS> (list-deftemplates) ; DR0650initial-factfoo*For a total of 3 deftemplates.CLIPS> (clear) ; DR0654CLIPS> (fetch "XYZBEDQ.txt") ; DR0654[TEXTPRO2] Unable to load file.Could not open file "XYZBEDQ.txt".FALSECLIPS> (clear) ; DR0655CLIPS> (defclass A (is-a USER) (slot x (create-accessor read-write))) ; DR0655CLIPS> (defclass B (is-a A) (slot y (create-accessor read-write))) ; DR0655CLIPS> (defmessage-handler B get-y ()) ; DR0655[MSGPSR3] System message-handlers may not be modified.ERROR:(defmessage-handler MAIN::B get-y (CLIPS> (clear) ; DR0656CLIPS> (defclass A (is-a USER) (role concrete) (multislot x (create-accessor read-write)))CLIPS> (make-instance a of A (x (instance-address a) 34))[a]CLIPS> (save-instances ins.sav) ; DR06561CLIPS> (clear) ; DR0657CLIPS> (defclass A (is-a USER) (role concrete) (slot x (create-accessor read-write)))CLIPS> (defmessage-handler A foo (?a) (bind ?x 1) (bind ?y 2) (put x ?self)) CLIPS> (make-instance a of A) ; DR0657[a]CLIPS> (send [a] foo 1) ; DR0657<Instance-a>CLIPS> (clear) ; DR0658CLIPS> (defclass A (is-a USER) (role concrete) (multislot x (create-accessor read-write)))CLIPS> (make-instance a of A) ; DR0658[a]CLIPS> (mv-slot-insert [a] x 1 abc) ; DR0658(abc)CLIPS> (clear) ; DR0659CLIPS> (defclass a (is-a USER) ()) ; DR0659[PRNTUTIL2] Syntax Error: Check appropriate syntax for defclass.ERROR:(defclass MAIN::a (is-a USER) ()CLIPS> (defclass b (is-a USER) (slot)) ; DR0659[PRNTUTIL2] Syntax Error: Check appropriate syntax for defclass slot.ERROR:(defclass MAIN::b (is-a USER) (slot )CLIPS> (list-defclasses) ; DR0659FLOATINTEGERSYMBOLSTRINGMULTIFIELDEXTERNAL-ADDRESSFACT-ADDRESSINSTANCE-ADDRESSINSTANCE-NAMEOBJECTPRIMITIVENUMBERLEXEMEADDRESSINSTANCEUSERINITIAL-OBJECTFor a total of 17 defclasses.CLIPS> (clear) ; DR0660CLIPS> (definstances bad (a of)) ; DR0660[PRNTUTIL2] Syntax Error: Check appropriate syntax for instance class.ERROR:(definstances MAIN::bad (a of )CLIPS> (clear) ; DR0661CLIPS> (definstances bad (a of BOGUS)) ; DR0661[PRNTUTIL1] Unable to find class BOGUS.ERROR:(definstances MAIN::bad (a of BOGUSCLIPS> (reset) ; DR0661CLIPS> (facts) ; DR0661f-0 (initial-fact)For a total of 1 fact.CLIPS> (clear) ; DR0662CLIPS> (sub-string 0 0 abc) ; DR0662""CLIPS> (clear) ; DR0663CLIPS> (defmessage-handler USER * ()) ; DR0663CLIPS> (list-defmessage-handlers USER) ; DR0663 - changedinit primary in class USERdelete primary in class USERprint primary in class USERdirect-modify primary in class USERmessage-modify primary in class USERdirect-duplicate primary in class USERmessage-duplicate primary in class USER* primary in class USERFor a total of 8 message-handlers.CLIPS> (clear) ; DR0664CLIPS> (defglobal ?*x* = 0) ; DR0664CLIPS> (defclass A (is-a USER) ; DR0664 (slot x (default ?*x*) (create-accessor read-write)) (slot y (default-dynamic ?*x*) (create-accessor read-write)))CLIPS> (clear) ; DR0665CLIPS> (preview-send OBJECT bogus) ; DR0665[MSGFUN1] No applicable primary message-handlers found for bogus.CLIPS> (clear) ; DR0666CLIPS> (defglobal ?*x* = 300) ; DR0666CLIPS> (defclass A (is-a USER) (role concrete)); DR0666CLIPS> (make-instance a of A) ; DR0666[a]CLIPS> (while (> ?*x* 0) do (any-instancep ((?a A)) TRUE) (bind ?*x* (- ?*x* 1)))FALSECLIPS> (do-for-all-instances ((?a A)) TRUE (printout t "Foo!" crlf))Foo!CLIPS> (clear) ; DR0668CLIPS> (defclass a (is-a USER)) ; DR0668CLIPS> (defclass b (is-a USER)) ; DR0668CLIPS> (defclass c (is-a a b)) ; DR0668CLIPS> (defclass d (is-a a)) ; DR0668CLIPS> (defclass e (is-a c d)) ; DR0668CLIPS> (clear) ; DR0668CLIPS> (defclass a (is-a USER)) ; DR0668CLIPS> (defclass b (is-a USER)) ; DR0668CLIPS> (defclass c (is-a a)) ; DR0668CLIPS> (defclass d (is-a b)) ; DR0668CLIPS> (defclass e (is-a c d)) ; DR0668CLIPS> (defclass f (is-a e a b)) ; DR0668CLIPS> (describe-class f) ; DR0668================================================================================********************************************************************************Abstract: direct instances of this class cannot be created.Direct Superclasses: e a bInheritance Precedence: f e c a d b USER OBJECTDirect Subclasses:--------------------------------------------------------------------------------Recognized message-handlers:init primary in class USERdelete primary in class USERprint primary in class USERdirect-modify primary in class USERmessage-modify primary in class USERdirect-duplicate primary in class USERmessage-duplicate primary in class USER********************************************************************************================================================================================CLIPS> (clear) ; DR0670CLIPS> (defrule foo => (close blah)) ; DR0670CLIPS> (reset) ; DR0670CLIPS> (run) ; DR0670CLIPS> (clear) ; DR0672CLIPS> (defglobal ?*x* = (create$ a b c d))CLIPS> (deffunction foo () (bind ?y ?*x*) (printout t ?y " " ?*x* crlf) (bind ?*x* (create$ e f g h)) (printout t ?y " " ?*x* crlf))CLIPS> (foo) ; DR0672(a b c d) (a b c d)(a b c d) (e f g h)CLIPS> (clear)CLIPS> (dribble-off)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?