2017-12-23 2 views
0

Ich möchte eine Bedingung zu der LHS einer Regel hinzufügen, die testet, wenn ein bestimmtes Symbol irgendwo im Multislot einer Vorlage erscheint.Testen auf Anwesenheit in einem Mehrfeld - CLIPS

Zum Beispiel möchte ich im folgenden Code den Kommentar mit jedem Ausdruck ersetzen, der dies funktioniert.

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

Wie lautet die Syntax hier?

Antwort

0

Ich musste die member$ Funktion verwenden!

(test (member$ ?f2 ?mf1))