0

我在将这段代码转换为?a &:(= (+ ?b ?c) ?a)更简单、更高效的剪辑时遇到问题。

有人能帮我吗?

4

1 回答 1

1

如果不需要再次引用变量 ?a,请使用 =(+ ?b ?c),否则使用? a &=(+ ?b ?c)

CLIPS> 
(defrule example-1
   (factoid ?b ?c)
   (factoid =(+ ?b ?c))
   =>)
CLIPS> 
(defrule example-2
   (factoid ?b ?c)
   (factoid ?a&=(+ ?b ?c))
   =>
   (printout t ?a crlf))
CLIPS> (assert (factoid 1 2) (factoid 3))
<Fact-2>
CLIPS> (agenda)
0      example-1: f-1,f-2
0      example-2: f-1,f-2
For a total of 2 activations. 
CLIPS> 
于 2013-06-04T01:46:07.887 回答