剪辑简单的规则

时间:2012-05-05 21:33:41

标签: clips

有没有人知道为什么:

(defrule initx
      (declare(salience 90))
      =>
      (assert (blabla 10))
)

(defrule gigel
    (declare(salience 89))
      =>
      (printout t "test" crlf)
)

不工作? 当我删除第一个规则时它起作用。 谢谢。

1 个答案:

答案 0 :(得分:0)

您看到的行为是什么?无论initx规则是否存在,gigel规则的行为都是相同的。

CLIPS> 
(defrule initx
  (declare(salience 90))
  =>
  (assert (blabla 10)))
CLIPS> 
(defrule gigel
  (declare(salience 89))
  =>
  (printout t "test" crlf))
CLIPS> (reset)
CLIPS> (run)
test
CLIPS> (facts)
f-0     (initial-fact)
f-1     (blabla 10)
For a total of 2 facts.
CLIPS> (clear)
CLIPS> 
(defrule gigel
  (declare(salience 89))
  =>
  (printout t "test" crlf))
CLIPS> (reset)
CLIPS> (run)
test
CLIPS> (facts)
f-0     (initial-fact)
For a total of 1 fact.
CLIPS>