2

什么错误问题?

ERROR-1:[ARGACCES5]function >= 预期参数 #2 为整数或浮点类型。ERROR-2:[CSTRCPSR1] 期望开始一个委托。

如何修复此错误?

4

1 回答 1

1

对于第一个错误,您将一个非数字参数作为第二个参数传递给 >= 函数。当构造中发生错误时,CLIPS 将显示已解析的内容以帮助您定位问题:

CLIPS> 
(defrule example
   (test (>= 3 a))
   =>)
[ARGACCES5] Function >= expected argument #2 to be of type integer or float

ERROR:
(defrule MAIN::example
   (test (>= 3 a)
CLIPS> 

通常,当您在加载构造时有多余或缺少括号时,会发生第二个错误。例如,如果您创建一个名为 example.clp 的文件,其内容如下:

(defrule example-1 =>)
(defrule example-2 =>)
) ; Extra parenthesis
(defrule example-3 =>)
(defrule example-4 =>) 

当您尝试加载它时,您会收到此错误:

CLIPS> (watch compilations)
CLIPS> (load "example.clp")
Defining defrule: example-1 +j+j
Defining defrule: example-2 +j

[CSTRCPSR1] Expected the beginning of a construct.
Defining defrule: example-3 +j
Defining defrule: example-4 +j
FALSE
CLIPS> 

如果您正在观看编译,您可以更好地了解错误发生的位置。在这种情况下,它位于规则 example-2 和 example-3 之间。

于 2013-11-23T16:56:51.090 回答