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))
我知道有几个谓词函数可以用来测试变量是否属于某种类型。 例如,
(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))