【问题标题】:How do I retrieve fact index in clips in a deffunction?如何在 deffunction 中检索剪辑中的事实索引?
【发布时间】:2016-12-26 21:04:03
【问题描述】:
(deffunction up ()
     ?fact <- u
    (retract ?fact)
    (assert (u green))

)

我正试图让这样的东西工作,一个改变事实状态的函数,但是这样它给了我一个类似的错误?事实没有定义。但我已经这样做了。为什么这不起作用?

【问题讨论】:

    标签: clips


    【解决方案1】:

    函数通过其参数接收输入。规则通过它们的模式接收输入。如果要进行模式匹配,请使用规则:

    (defrule up
       ?fact <- (u)
       =>
       (retract ?fact)
       (assert (u green)))
    

    或者,如果您需要为 deftemplate 迭代现有的事实集,您可以使用事实集查询函数(do-for-fact、do-for-all-facts,...):

    (deffunction up ()
       (do-for-fact ((?fact u)) TRUE
          (retract ?fact))
       (assert (u green)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多