在使用剪辑时试图收回事实

时间:2018-09-28 18:04:45

标签: clips

我不熟悉剪辑,我发现我的retract并没有真正删除事实。

(defrule test
(select ?select~indoor&~outdoor)
=>
(retract ?select)
)

剪辑运行此代码后,我尝试使用(facts)进行检查,但我仍然发现事实select仍然存在

1 个答案:

答案 0 :(得分:1)

您需要将变量绑定到与模式匹配的事实。您不能通过将变量绑定到事实内部的值来撤回事实。

         CLIPS (6.31 2/3/18)
CLIPS> 
(defrule test
   ?f <- (select ...)
   =>
   (retract ?f))
CLIPS> (assert (select ...))
<Fact-1>
CLIPS> (facts)
f-0     (initial-fact)
f-1     (select ...)
For a total of 2 facts.
CLIPS> (run)
CLIPS> (facts)
f-0     (initial-fact)
For a total of 1 fact.
CLIPS>