📄 focusexe.exp
字号:
TRUECLIPS> (batch "focusexe.bat")TRUECLIPS> (clear) ;; Test simple switchingCLIPS> (set-strategy depth)depthCLIPS> (unwatch all)CLIPS> (watch rules)CLIPS> (watch focus)CLIPS> (defmodule MAIN (export ?ALL))CLIPS> (deffacts info (a) (b))CLIPS> (defrule MAIN::start => (focus A B C))CLIPS> (defmodule A (import MAIN ?ALL))CLIPS> (defrule A::arule1 (a) =>)CLIPS> (defrule A::arule2 (b) =>)CLIPS> (defmodule B (import MAIN ?ALL))CLIPS> (defrule B::brule1 (a) =>)CLIPS> (defrule B::brule2 (b) =>)CLIPS> (defmodule C (import MAIN ?ALL))CLIPS> (defrule C::crule1 (a) =>)CLIPS> (defrule C::crule2 (b) =>)CLIPS> (reset)<== Focus MAIN==> Focus MAINCLIPS> (run)FIRE 1 start: f-0==> Focus C from MAIN==> Focus B from C==> Focus A from BFIRE 2 arule2: f-2FIRE 3 arule1: f-1<== Focus A to BFIRE 4 brule2: f-2FIRE 5 brule1: f-1<== Focus B to CFIRE 6 crule2: f-2FIRE 7 crule1: f-1<== Focus C to MAIN<== Focus MAINCLIPS> (clear) ;; Test early returnCLIPS> (defmodule MAIN (export ?ALL))CLIPS> (deffacts info (a) (b))CLIPS> (defrule MAIN::start => (focus A B C))CLIPS> (defmodule A (import MAIN ?ALL))CLIPS> (defrule A::arule1 (a) =>)CLIPS> (defrule A::arule2 (b) => (return))CLIPS> (defmodule B (import MAIN ?ALL))CLIPS> (defrule B::brule1 (a) =>)CLIPS> (defrule B::brule2 (b) => (return))CLIPS> (defmodule C (import MAIN ?ALL))CLIPS> (defrule C::crule1 (a) =>)CLIPS> (defrule C::crule2 (b) => (return))CLIPS> (reset)<== Focus MAIN==> Focus MAINCLIPS> (run)FIRE 1 start: f-0==> Focus C from MAIN==> Focus B from C==> Focus A from BFIRE 2 arule2: f-2<== Focus A to BFIRE 3 brule2: f-2<== Focus B to CFIRE 4 crule2: f-2<== Focus C to MAIN<== Focus MAINCLIPS> (clear) ;; Test nestingCLIPS> (defmodule MAIN (export ?ALL))CLIPS> (deffacts info (a) (b) (c))CLIPS> (defrule MAIN::start => (focus A))CLIPS> (defmodule A (import MAIN ?ALL))CLIPS> (defrule A::arule1 (a) =>)CLIPS> (defrule A::arule2 (b) => (focus B))CLIPS> (defrule A::arule3 (c) => (focus B))CLIPS> (defmodule B (import MAIN ?ALL))CLIPS> (defrule B::brule1 (a) =>)CLIPS> (defrule B::brule2 (b) => (focus C))CLIPS> (defrule B::brule3 (c) => (focus C))CLIPS> (defmodule C (import MAIN ?ALL))CLIPS> (defrule C::crule1 (a) =>)CLIPS> (defrule C::crule2 (b) => (return))CLIPS> (defrule C::crule3 (c) => (focus A))CLIPS> (reset)<== Focus MAIN==> Focus MAINCLIPS> (run)FIRE 1 start: f-0==> Focus A from MAINFIRE 2 arule3: f-3==> Focus B from AFIRE 3 brule3: f-3==> Focus C from BFIRE 4 crule3: f-3==> Focus A from CFIRE 5 arule2: f-2==> Focus B from AFIRE 6 brule2: f-2==> Focus C from BFIRE 7 crule2: f-2<== Focus C to BFIRE 8 brule1: f-1<== Focus B to AFIRE 9 arule1: f-1<== Focus A to CFIRE 10 crule1: f-1<== Focus C to B<== Focus B to A<== Focus A to MAIN<== Focus MAINCLIPS> (clear) ;; AutofocusCLIPS> (defrule error (declare (auto-focus)) =>)[PRNTUTIL2] Syntax Error: Check appropriate syntax for auto-focus statement.ERROR:(defrule MAIN::error (declare (auto-focus )CLIPS> (defrule error (declare (auto-focus TRUE FALSE)) =>)[PRNTUTIL2] Syntax Error: Check appropriate syntax for declare statement.ERROR:(defrule MAIN::error (declare (auto-focus TRUE FALSECLIPS> (defrule error (declare (auto-focus 6)) =>)[PRNTUTIL2] Syntax Error: Check appropriate syntax for auto-focus statement.ERROR:(defrule MAIN::error (declare (auto-focus 6CLIPS> (clear)CLIPS> (defmodule MAIN (export ?ALL))CLIPS> (deffacts info (a) (b) (c))CLIPS> (defrule MAIN::mrule1 (c) => (assert (d)))CLIPS> (defrule MAIN::mrule2 (b) => (assert (e)))CLIPS> (defrule MAIN::mrule3 (a) =>)CLIPS> (defmodule A (import MAIN ?ALL))CLIPS> (defrule A::arule1 (declare (auto-focus TRUE)) (d) =>)CLIPS> (defrule A::arule2 (declare (auto-focus TRUE)) (e) => (assert (f)))CLIPS> (defrule A::arule3 (f) =>)CLIPS> (reset)<== Focus MAIN==> Focus MAINCLIPS> (run)FIRE 1 mrule1: f-3==> Focus A from MAINFIRE 2 arule1: f-4<== Focus A to MAINFIRE 3 mrule2: f-2==> Focus A from MAINFIRE 4 arule2: f-5FIRE 5 arule3: f-6<== Focus A to MAINFIRE 6 mrule3: f-1<== Focus MAINCLIPS> (dribble-off)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -