2017-03-15 74 views
1

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

(test (integerp ?my_var)) 

返回TRUE如果my_var是整数类型。

说我有一个班A。如何测试变量是否为A?也就是说,我要测试是否?my_var

我期待这样的事情A.实例:

(test (instance_of_A_p ?my_var)) 

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

回答

2

使用类型功能:

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)) 
相关问题