CLIPS 6.3 IF语句

时间:2018-12-12 16:58:02

标签: clips

我正在一个项目上,想找出为什么我的if语句不起作用。我的代码如下:

pip install …

它给我的错误是(生产遗漏的函数声明是)。有人可以就问题出在我身上吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

也许您期望if函数执行模式匹配以确定事实(生产中等)或(生产高)。那是行不通的,因为if函数类似于Java和C等其他语言,在该语言中该函数希望表达式进行求值(例如函数调用或变量)。在if语句中,表达式(生产中等)和(生产高)是函数调用,并且由于您没有声明生产是函数,因此会收到错误消息。

您应将原始规则分为两个规则:

(defrule accept-location-lessthan-path-medium
   (geological-survey-lessthan-path-is stable | Stable)
   (production-is medium)
   =>
   (assert (medium-outcome))
   (printout t "Second best" crlf))


(defrule accept-location-lessthan-path-high
   (geological-survey-lessthan-path-is stable | Stable)
   (production-is high)
   =>
   (assert (ideal-location))
   (printout t "Accepted! The location is ideal; you can start building now! :)" crlf))