2013-11-23 4 views

답변

1

첫 번째 오류의 경우 숫자가 아닌 인수를 두 번째 인수로> = 함수에 전달합니다. 오류가 구조 내에서 발생하는 경우, 클립은 문제를 찾을 수 있도록 구문 분석 있었는지를 보여줍니다 : 구조를로드 할 때 추가 또는 누락 된 괄호가있을 때

CLIPS> 
(defrule example 
    (test (>= 3 a)) 
    =>) 
[ARGACCES5] Function >= expected argument #2 to be of type integer or float 

ERROR: 
(defrule MAIN::example 
    (test (>= 3 a) 
CLIPS> 

는 일반적으로 두 번째 오류가 발생합니다. 예를 들어, 다음과 같은 내용으로 example.clp라는 이름의 파일을 만들 경우 :

(defrule example-1 =>) 
(defrule example-2 =>) 
) ; Extra parenthesis 
(defrule example-3 =>) 
(defrule example-4 =>) 

당신거야 당신이 그것을로드하려고 할 때이 오류가 발생합니다 :

CLIPS> (watch compilations) 
CLIPS> (load "example.clp") 
Defining defrule: example-1 +j+j 
Defining defrule: example-2 +j 

[CSTRCPSR1] Expected the beginning of a construct. 
Defining defrule: example-3 +j 
Defining defrule: example-4 +j 
FALSE 
CLIPS> 

당신이 컴파일을보고하는 경우 오류가 발생한 위치를 더 잘 파악할 수 있습니다. 이 경우 규칙 예제 2와 예제 3 사이에 있습니다.