多场测试 - CLIPS

Testing for presence in a multifield - CLIPS

我想向规则的 LHS 添加一个条件,用于测试某个符号是否出现在模板的多槽位中的某处。

例如,在下面的代码中,我想用任何表达式来替换注释。

(deftemplate foo
(slot field
    (type STRING)
   )
(multislot multifield
    (type INTEGER)
  )
)

(deftemplate bar
(slot field
   (type INT)
  )
)

(defrule rule
(foo (field ?f1) (multifield $?mf1))
(bar (field ?f2))
; IF f2 IS AN ELEMENT OF mf1
=>
(assert (relation f1 f2))
)

这里的语法是什么?

我需要使用 member$ 功能!

(test (member$ ?f2 ?mf1))