2017-03-15 2 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))