0

我在 CLIPS (6.3) 中有以下 deftemplates:

(deftemplate A ( slot a ) (slot b) )
(deftemplate forSearch (slot property)(slot value))

我需要(property, value)从输入中读取该对,然后找到A插槽中的property值为value.

如果我做这样的事情:

(defrule r2
(forSearch (property ?c)(value ?d))
(A (?c ?d))
=>
(printout t "debug" crlf)
)

我收到以下错误:

[PRNTUTIL2] Syntax Error:  Check appropriate syntax for deftemplate patterns.

ERROR:
(defrule MAIN::r2
   (forSearch (property ?c) (value ?d))
   (A (?c

我现在该怎么办?

4

1 回答 1

0

您必须在规则的模式匹配部分写入插槽名称。

正确的语法是:

(defrule r2
     (forSearch (property ?c)(value ?d))
     (A (a ?c) (b ?d))
     =>
     (printout t "debug" crlf)
)

我不明白你想要完成什么,我知道已经晚了,但希望它有所帮助。

于 2013-04-06T10:33:04.823 回答