Я пытаюсь написать правило, которое будет соответствовать, когда определенное значение отсутствует в мультислоте, а затем добавить к нему это значение.
(deftemplate person
(multislot packing_list
(type SYMBOL)
(default ?DERIVE)))
(defrule apply_adapter
(travel international)
?p <- (person (packing_list $? ~travel_adaptor ))
=>
(modify ?p (packing_list travel_adaptor)))
(println "Added to list" crlf)
)
(deffacts start
(travel international)
(person)
)
Две части этого, я знаю, не верны:
?p <- (person (packing_list $? ~travel_adaptor ))
не запускает правило - каков правильный синтаксис? (modify ?p (packing_list travel_adaptor)))
, вероятно, не делает то, что я хочу, то есть вставить значение, а незаменить список.
Есть идеи, как это исправить?