0
votes

I am new to clips, I found that my retract not really delete the facts.

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

After the clips run this code, I try to check by using (facts),but I still found that the facts select is still there

1

1 Answers

1
votes

You need to bind a variable to the fact matching the pattern. You can't retract the fact by binding a variable to a value inside the fact.

         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>