CLIPS для меня в новинку - я уже 2 дня пытаюсь глубоко погрузиться в этот язык. У меня возник вопрос, а именно: как (если возможно) динамически создавать / добавлять новые правила? Я хотел бы сделать, например, что-то вроде этого:
(deftemplate action
(slot prev)
(slot curr)
)
(defrule test
(action (prev ?p))
=>
(defrule test_inner
(action (curr ?p))
=>
(printout t "Result of a newly created rule.")
)
)
Пожалуйста, не обращайте особого внимания на логику этих правил - это всего лишь пример. После вызова представленных выше команд я получаю:
[EXPRNPSR3] Missing function declaration for defrule.
ERROR:
(defrule MAIN::test
(action (prev ?p))
=>
(defrule
Это ошибка синтаксиса команды или я не могу определять новые правила "динамически"?