CLIPS>(unwatch facts)
CLIPS>(clear)
CLIPS>(assert (animal-is duck))
<Fact-1>
CLIPS>(defrule duck
(animal-is duck)
=>
(assert (sound-is quack)))
CLIPS>
----------------------------------------------------
(defrule duck “ Here comes the quack ” ; 规则头
(animal-is duck) ; 模式
=> ; THEN 箭头
(assert (sound-is quack))) ; 执行
---------------------------------------------------------------
CLIPS中,同时刻只能仅有一个规则名存在。
• 输入同一个规则名,如本例中的“duck”,将会更替前面规则名为“duck”里已经存在的一切。也就是说,CLIPS中可能有许多条规则,但是只能有一条被命名为“duck”的规则。这与其他程序语言中一个程序名只能标识唯一程序段是一样的道理。
规则的常规语法如下所示:
(defrule rule_name “optinal_comment”
(pattern_1) ; 由一些在“=>”之前的元素组成的规则左部分
(pattern_2)
.
.
.
(pattern_N)
=>
(action_1) ; 由一些在“=>”之后的元素组成的规则右部分
(action_2)
.
.
.
(action_M)) ; 最后一个“)”是与“defrule”前面的“)”配
; 套的。保证你的圆括弧完整,否则你将得到错误消息。