每次 Jess 规则触发时增加或更改变量
Increment or change variable each time Jess rule fires
有没有办法在每次触发规则时递增或更改某个变量的值?
我需要每次触发规则时都引入槽的新值,因为我将在以下示例中使用此值进行连接:
我有一个电路和规则可以将三角形转换为星形。对于每个转换产品都是附加节点。对于简单的网络,我将其命名为 T,但对于更复杂的网络,我最终得到了充满 T 个节点的网络,因为每次为另一个增量触发规则时,我都会得到一个 T 节点。
Jess 有一种特殊的变量:全局变量。它们在程序的所有部分都可见,包括规则的 RHS。要创建,请使用 defglobal
,例如
(defglobal ?*firecount* = 0)
请注意,星号是必填项。
您可以像使用任何其他变量一样使用它们:
(++ ?*firecount*)
(printout t "fire counter = " ?*firecount* crlf)
请注意,即使 reset
也不会清除全局。 - 有关更多详细信息,请参阅 Jess 手册。
有没有办法在每次触发规则时递增或更改某个变量的值? 我需要每次触发规则时都引入槽的新值,因为我将在以下示例中使用此值进行连接: 我有一个电路和规则可以将三角形转换为星形。对于每个转换产品都是附加节点。对于简单的网络,我将其命名为 T,但对于更复杂的网络,我最终得到了充满 T 个节点的网络,因为每次为另一个增量触发规则时,我都会得到一个 T 节点。
Jess 有一种特殊的变量:全局变量。它们在程序的所有部分都可见,包括规则的 RHS。要创建,请使用 defglobal
,例如
(defglobal ?*firecount* = 0)
请注意,星号是必填项。
您可以像使用任何其他变量一样使用它们:
(++ ?*firecount*)
(printout t "fire counter = " ?*firecount* crlf)
请注意,即使 reset
也不会清除全局。 - 有关更多详细信息,请参阅 Jess 手册。