Язык программирования CLIPS.Ошибка при удалении клипов.Помогите мне

Какая проблема с ошибкой?

ERROR-1: [ARGACCES5]функция >= ожидала, что аргумент #2 будет типа integer или float. ERROR-2: [CSTRCPSR1] ожидалось начало контры.

Как исправить эту ошибку?

Первая ошибка заключается в том, что вы передаете нечисловой аргумент в качестве второго аргумента в функцию >=. Когда в конструкции возникает ошибка, CLIPS покажет вам, что было разобрано, чтобы помочь вам найти проблему:

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> 

Если вы'следите за компиляциями, вы можете лучше понять, где возникает ошибка. В данном случае она находится между правилами example-2 и example-3.

Комментарии (0)