2012-05-05 59 views
0

没有任何人有任何想法,为什么这样的:剪辑简单的规则

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

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

不工作? 当我删除第一条规则时,它就起作用了。 谢谢。

回答

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>