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

CLIPS: How to test if a variable's type is a certain class?

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

(test (integerp ?my_var))

returns TRUE 如果 my_var 是整数类型。

假设我有一个 class A。如何测试变量是否为 A 类型?也就是说,我想测试 ?my_var 是否是 A.

的实例

我正在寻找这样的东西:

(test (instance_of_A_p ?my_var))

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

使用类型函数:

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> 

所以在规则的左手边:

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