多场测试 - 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))
我想向规则的 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))