пытаясь убрать факты при использовании клипов - PullRequest
0 голосов
/ 28 сентября 2018

Я новичок в клипах, обнаружил, что мои retract на самом деле не удаляют факты.

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

После того, как клипы запускают этот код, я пытаюсь проверить с помощью (facts), но ядо сих пор обнаружил, что факты select все еще там

1 Ответ

0 голосов
/ 29 сентября 2018

Вам необходимо связать переменную с фактом, соответствующим шаблону.Вы не можете убрать факт, связав переменную со значением внутри факта.

         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> 
...