Код задает пользователю вопрос a / n и вносит изменения - просто. Кажется, что оператор принимает только целочисленные типы и типы с плавающей точкой, и мне нужны только два ответа, поэтому я использовал 1 и 0 и исключил остальные, НО он читает только цифры, поэтому исключаются только цифры, а не символы.
(defrule rule01
=>
(printout t "Question (yes=1/no=0)?" crlf)
(bind ?x (read))
(if (!= ?x 1)
then
(if (= ?x 0)
then
(assert (rule01 no))
else (printout t "Use ONLY 0 OR 1 for your answers!" crlf))
else (assert (rule01 yes))))
В настоящее время при попытке ввода символа возвращается следующее:
CLIPS> (run)
Question (yes=1/no=0)?
g
[ARGACCES5] Function <> expected argument #1 to be of type integer or float
[PRCCODE4] Execution halted during the actions of defrule rule01.
Как добавить исключение для символов?