删除JESS中的多时隙变量

时间:2014-10-28 14:02:32

标签: jess

我有一个在JESS中包含多个时隙的deftemplate,如果规则被触发,我想在多时隙中删除一个变量。例如:

(deftemplate Person (slot name)
                    (multislot friends))
(assert (Person (name John)(friends Jimmy Joe Jessica)))

现在我想从朋友插槽中删除Jimmy。

非常感谢你 阿里

1 个答案:

答案 0 :(得分:1)

我已在您的问题中修复了一些遗漏,假设模板名称为Person

此规则从所有人friends中消除了Jimmy。

(defrule KillJimmy
    ?p <- (Person (friends $?a Jimmy $?b))
=>
    (modify ?p (friends (create$ $?a $?b)))
)