在下面的jess/clips代码中,变量x没有被很好地引用。为什么?
(assert (item 2))
(assert (item 12))
(defrule ex1not
(not (item ?x))
(item ?y & (> ?x 10)) <- HERE I GET "No such variable x"
=>
)
第一个模式在没有事实(item ?x)
的情况下匹配,对于任何?x
值;当根本没有(item)
事实时,这是真的。然后,第二种模式将尝试将该?x
与 10 进行比较。如果我们以某种方式处于第二种模式,那么由于?x
不匹配任何东西,它就没有价值,所以你不能将它与任何东西进行比较。
如果您编辑您的问题以添加您实际想要表达的内容,用英语,我可以编辑我的答案以向您展示如何操作。