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 + -
显示快捷键?