2017-03-15 7 views
1

変数が特定の型かどうかをテストできるいくつかの述語関数があることは知っています。例えば 、CLIPS:変数の型が特定のクラスであるかどうかをテストするには?

(test (integerp ?my_var)) 

戻りTRUEをMY_VARが整数型である場合。

私にはクラスAがあります。変数のタイプがAであるかどうかをテストするにはどうすればよいですか?

(test (instance_of_A_p ?my_var)) 

または

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

答えて

2

利用型機能:

それは私が ?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> 

したがって、規則のLHS内:

(test (eq (type ?a) A)) 
関連する問題