0
(deffunction up()
?fact <- u
(retract ?fact)
(assert (u green))
)
我试图得到像这样的工作,一个函数来改变事实的状态,但是它给了我一个类似的错误?事实没有定义。但我已经做了这个决定。为什么这不起作用?如何在检索中检索剪辑中的事实索引?
(deffunction up()
?fact <- u
(retract ?fact)
(assert (u green))
)
我试图得到像这样的工作,一个函数来改变事实的状态,但是它给了我一个类似的错误?事实没有定义。但我已经做了这个决定。为什么这不起作用?如何在检索中检索剪辑中的事实索引?
函数通过参数接收输入。规则通过他们的模式接收输入。如果你想要模式匹配,使用规则:
(defrule up
?fact <- (u)
=>
(retract ?fact)
(assert (u green)))
或者,如果你需要遍历一个自定义模板中现有的一组事实,你可以用事实设置查询功能(做换事实上,做所有事实......):
(deffunction up()
(do-for-fact ((?fact u)) TRUE
(retract ?fact))
(assert (u green)))