2017-03-15 125 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)) 
相關問題