📄 dfrulcmd.exp
字号:
TRUECLIPS> (batch "dfrulcmd.bat")TRUECLIPS> (clear)CLIPS> (defrule r1 =>))CLIPS> (defrule r2 (a) => (assert (b)))CLIPS> (defrule r3 ?f <- (y) ?g <- (a2) => (retract ?f) (if (> 3 4) then (retract ?g)))CLIPS> (defrule r4 ?f <- (x) => (retract ?f) (assert (x)))CLIPS> (defrule r5 (or (x) (y) (and (a) (b))) => (assert (a3)))CLIPS> (defrule r6 (and (a) (b)) (c) => (assert (a2)))CLIPS> (defrule * (not (x)) (not (y)) => (assert (x)) (assert (y)))CLIPS> (list-defrules d6)[ARGACCES5] Function list-defrules expected argument #1 to be of type defmodule nameCLIPS> (rules)r1r2r3r4r5r6*For a total of 7 defrules.CLIPS> (ppdefrule r1)(defrule MAIN::r1 =>)CLIPS> (ppdefrule r2)(defrule MAIN::r2 (a) => (assert (b)))CLIPS> (ppdefrule r3)(defrule MAIN::r3 ?f <- (y) ?g <- (a2) => (retract ?f) (if (> 3 4) then (retract ?g)))CLIPS> (ppdefrule r4)(defrule MAIN::r4 ?f <- (x) => (retract ?f) (assert (x)))CLIPS> (ppdefrule r5)(defrule MAIN::r5 (or (x) (y) (and (a) (b))) => (assert (a3)))CLIPS> (ppdefrule r6)(defrule MAIN::r6 (and (a) (b)) (c) => (assert (a2)))CLIPS> (ppdefrule *)(defrule MAIN::* (not (x)) (not (y)) => (assert (x)) (assert (y)))CLIPS> (undefrule)[ARGACCES4] Function undefrule expected exactly 1 argument(s)CLIPS> (undefrule 10)[ARGACCES5] Function undefrule expected argument #1 to be of type symbolCLIPS> (undefrule bad-name)[PRNTUTIL1] Unable to find defrule bad-name.CLIPS> (undefrule r6 10)[ARGACCES4] Function undefrule expected exactly 1 argument(s)CLIPS> (list-defrules)r1r2r3r4r5r6*For a total of 7 defrules.CLIPS> (undefrule r1)CLIPS> (undefrule r2)CLIPS> (undefrule r3)CLIPS> (list-defrules)r4r5r6*For a total of 4 defrules.CLIPS> (undefrule *)CLIPS> (list-defrules)r4r5r6For a total of 3 defrules.CLIPS> (undefrule *)CLIPS> (list-defrules)CLIPS> (clear) ; Test deleting a rule by itselfCLIPS> (defrule foo => (undefrule foo))CLIPS> (rules)fooFor a total of 1 defrule.CLIPS> (reset)CLIPS> (run)[PRNTUTIL4] Unable to delete defrule foo.CLIPS> (rules)fooFor a total of 1 defrule.CLIPS> (clear) ; Test loading another KBCLIPS> (defrule foo1 (a) => (assert (f)))CLIPS> (defrule foo2 (b) (f) => (assert (g)))CLIPS> (defrule foo3 (c) (g) =>)CLIPS> (save foo.tmp)TRUECLIPS> (clear)CLIPS> (defrule bar1 => (assert (a)))CLIPS> (defrule bar2 (a) => (assert (b)))CLIPS> (defrule bar3 (b) => (assert (c)) (rules) (printout t "-------" crlf) (undefrule *) (rules) (printout t "-------" crlf) (load foo.tmp) (rules) (printout t "-------" crlf))CLIPS> (defrule bar4 (a) (b) (c) =>)CLIPS> (reset)CLIPS> (watch rules)CLIPS> (watch activations)CLIPS> (watch facts)CLIPS> (run)FIRE 1 bar1: f-0==> f-1 (a)==> Activation 0 bar2: f-1FIRE 2 bar2: f-1==> f-2 (b)==> Activation 0 bar3: f-2FIRE 3 bar3: f-2==> f-3 (c)==> Activation 0 bar4: f-1,f-2,f-3bar1bar2bar3bar4For a total of 4 defrules.-------[PRNTUTIL4] Unable to delete defrule bar3.<== Activation 0 bar4: f-1,f-2,f-3bar3For a total of 1 defrule.-------*==> Activation 0 foo1: f-1**bar3foo1foo2foo3For a total of 4 defrules.-------FIRE 4 foo1: f-1==> f-4 (f)==> Activation 0 foo2: f-2,f-4FIRE 5 foo2: f-2,f-4==> f-5 (g)==> Activation 0 foo3: f-3,f-5FIRE 6 foo3: f-3,f-5CLIPS> (unwatch all)CLIPS> (clear) ; Test agenda commandCLIPS> (agenda)CLIPS> (agenda 20)[ARGACCES5] Function agenda expected argument #1 to be of type symbolCLIPS> (defrule foo1 (declare (salience 2)) =>)CLIPS> (defrule foo2 (declare (salience 1)) =>)CLIPS> (defrule foo3 (declare (salience 0)) =>)CLIPS> (reset)CLIPS> (agenda)2 foo1: f-01 foo2: f-00 foo3: f-0For a total of 3 activations.CLIPS> (run 1)CLIPS> (agenda)1 foo2: f-00 foo3: f-0For a total of 2 activations.CLIPS> (run 1)CLIPS> (agenda)0 foo3: f-0For a total of 1 activation.CLIPS> (run 1)CLIPS> (agenda)CLIPS> (clear) ; Test matches commandCLIPS> (matches)[ARGACCES4] Function matches expected exactly 1 argument(s)CLIPS> (matches 10)[ARGACCES5] Function matches expected argument #1 to be of type symbolCLIPS> (matches bad-rule)[PRNTUTIL1] Unable to find defrule bad-rule.CLIPS> (defrule foo (or (a ?x) (b ?x)) (c ?) =>)CLIPS> (defrule bar (b ?x) (c ?x) (a ?) =>)CLIPS> (defrule yaz (q) (r) =>)CLIPS> (defrule flx (b ?x) (not (c ?x)) (a ?x) =>)CLIPS> (assert (a 1) (a 2) (a 3) (b 1) (b 2) (c 1))<Fact-5>CLIPS> (matches foo)Matches for Pattern 1f-0f-1f-2Matches for Pattern 2f-5Partial matches for CEs 1 - 2f-0,f-5f-1,f-5f-2,f-5Matches for Pattern 1f-3f-4Matches for Pattern 2f-5Partial matches for CEs 1 - 2f-3,f-5f-4,f-5Activationsf-0,f-5f-1,f-5f-2,f-5f-3,f-5f-4,f-5CLIPS> (matches bar)Matches for Pattern 1f-3f-4Matches for Pattern 2f-5Matches for Pattern 3f-0f-1f-2Partial matches for CEs 1 - 2f-3,f-5Partial matches for CEs 1 - 3f-3,f-5,f-2f-3,f-5,f-1f-3,f-5,f-0Activationsf-3,f-5,f-2f-3,f-5,f-1f-3,f-5,f-0CLIPS> (matches yaz)Matches for Pattern 1 NoneMatches for Pattern 2 NonePartial matches for CEs 1 - 2 NoneActivations NoneCLIPS> (matches flx)Matches for Pattern 1f-3f-4Matches for Pattern 2f-5Matches for Pattern 3f-0f-1f-2Partial matches for CEs 1 - 2f-4,Partial matches for CEs 1 - 3f-4,,f-1Activationsf-4,,f-1CLIPS> (clear) ; Test breakpoint stuffCLIPS> (set-break)[ARGACCES4] Function set-break expected exactly 1 argument(s)CLIPS> (set-break 10)[ARGACCES5] Function set-break expected argument #1 to be of type symbolCLIPS> (set-break bad-rule)[PRNTUTIL1] Unable to find defrule bad-rule.CLIPS> (show-breaks)CLIPS> (show-breaks 10)[ARGACCES5] Function show-breaks expected argument #1 to be of type symbolCLIPS> (remove-break)CLIPS> (remove-break 10)[ARGACCES5] Function remove-break expected argument #1 to be of type symbolCLIPS> (remove-break bad-rule)[PRNTUTIL1] Unable to find defrule bad-rule.CLIPS> (defrule foo1 (declare (salience 4)) =>)CLIPS> (defrule foo2 (declare (salience 3)) =>)CLIPS> (defrule foo3 (declare (salience 2)) =>)CLIPS> (defrule foo4 (declare (salience 1)) => (assert (a)))CLIPS> (defrule foo5 (declare (salience 0)) => (assert (b)))CLIPS> (defrule foo6 (declare (salience 5)) (or (a) (b)) =>)CLIPS> (set-break foo5 10)[ARGACCES4] Function set-break expected exactly 1 argument(s)CLIPS> (remove-break foo5 10)[ARGACCES4] Function remove-break expected no more than 1 argument(s)CLIPS> (show-breaks)CLIPS> (set-break foo2)CLIPS> (set-break foo4)CLIPS> (set-break foo6)CLIPS> (show-breaks)foo2foo4foo6CLIPS> (watch rules)CLIPS> (reset)CLIPS> (run)FIRE 1 foo1: f-0Breaking on rule foo2.CLIPS> (run)FIRE 1 foo2: f-0FIRE 2 foo3: f-0Breaking on rule foo4.CLIPS> (run)FIRE 1 foo4: f-0Breaking on rule foo6.CLIPS> (run)FIRE 1 foo6: f-1FIRE 2 foo5: f-0Breaking on rule foo6.CLIPS> (remove-break foo4)CLIPS> (show-breaks)foo2foo6CLIPS> (remove-break foo6)CLIPS> (reset)CLIPS> (run)FIRE 1 foo1: f-0Breaking on rule foo2.CLIPS> (run)FIRE 1 foo2: f-0FIRE 2 foo3: f-0FIRE 3 foo4: f-0FIRE 4 foo6: f-1FIRE 5 foo5: f-0FIRE 6 foo6: f-2CLIPS> (set-break foo3)CLIPS> (remove-break)CLIPS> (reset)CLIPS> (run)FIRE 1 foo1: f-0FIRE 2 foo2: f-0FIRE 3 foo3: f-0FIRE 4 foo4: f-0FIRE 5 foo6: f-1FIRE 6 foo5: f-0FIRE 7 foo6: f-2CLIPS> (unwatch all)CLIPS> (clear) ; Test refresh commandCLIPS> (refresh)[ARGACCES4] Function refresh expected exactly 1 argument(s)CLIPS> (refresh 10)[ARGACCES5] Function refresh expected argument #1 to be of type symbolCLIPS> (refresh bad-rule)[PRNTUTIL1] Unable to find defrule bad-rule.CLIPS> (defrule foo (a ?) (b ?) =>)CLIPS> (assert (a 1) (a 2) (a 3) (b 1) (b 2))<Fact-4>CLIPS> (agenda)0 foo: f-0,f-40 foo: f-1,f-40 foo: f-2,f-40 foo: f-0,f-30 foo: f-1,f-30 foo: f-2,f-3For a total of 6 activations.CLIPS> (run 3)CLIPS> (refresh foo)CLIPS> (agenda)0 foo: f-2,f-40 foo: f-1,f-40 foo: f-0,f-40 foo: f-0,f-30 foo: f-1,f-30 foo: f-2,f-3For a total of 6 activations.CLIPS> (run)CLIPS> (refresh foo)CLIPS> (agenda)0 foo: f-2,f-30 foo: f-1,f-30 foo: f-0,f-30 foo: f-2,f-40 foo: f-1,f-40 foo: f-0,f-4For a total of 6 activations.CLIPS> (refresh foo)CLIPS> (agenda)0 foo: f-2,f-3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -