如何将全局变量的值绑定到插槽?

时间:2019-06-10 06:27:46

标签: clips jess

我正在尝试将插槽绑定到全局变量,但似乎不起作用。

我尝试了以下操作,但是创建的规则不起作用。

*(defrule getusermalinfo
(user  (usinfo  ?usr))
=>
(bind ?usr ?*degreeofyes*)  
)*

之后,我想使用广告位值做出一些决定。就像下面的规则一样:

*(defrule not-likely
(user {usinfo <= 10})
=>
(printout t "Not suffering from Kwashiorkor" crlf)
)*

1 个答案:

答案 0 :(得分:2)

一个人不能使用(绑定)来修改事实的插槽值。您需要使用(修改)这样的内容:

(defrule getusermalinfo
  ?user <- (user)
 =>
  (modify ?user (usinfo ?*degreeofyes*))
)

但是,请注意,您可能必须在此规则的LHS中添加一些内容,以选择一些特定的用户事实和/或避免在修改后重复触发此规则。