CLIPS:如何测试变量的类型是否属于某个类?

时间:2017-03-15 14:17:44

标签: clips expert-system

我知道有几个谓词函数可以测试变量是否属于某种类型。 例如,

(test (integerp ?my_var))
如果my_var的类型为整数,则

返回TRUE

说我有一个班级A。如何测试变量是否为A类型?也就是说,我想测试?my_var是否是A的实例。

我正在寻找类似的东西:

(test (instance_of_A_p ?my_var))

(test (is-a (?my_var A))

1 个答案:

答案 0 :(得分:3)

使用类型功能:

CLIPS> (bind ?a 3)
3
CLIPS> (type a)
SYMBOL
CLIPS> (defclass A (is-a USER))
CLIPS> (bind ?a (make-instance a1 of A))
[a1]
CLIPS> (type ?a)
A
CLIPS> (eq (type ?a) A)
TRUE
CLIPS> 

所以在规则的LHS中:

(test (eq (type ?a) A))