2017-12-23 8 views
0

テンプレートのマルチスロットのどこかに特定のシンボルが現れるかどうかをテストするルールのLHSに条件を追加したいとします。multifieldでの存在のテスト - CLIPS

たとえば、以下のコードでは、この表現をどのような表現でも置き換えることにしたいと思います。

(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)) 
) 

ここでの構文はなんですか?

答えて

0

member$機能を使用する必要がありました。

(test (member$ ?f2 ?mf1)) 
関連する問題