2016-12-01 2 views
0

Gibt es eine Möglichkeit, den Namen der gefeuerten Regel in CLIPS auszugeben? Beispiel:CLIPS: Verweis auf ruleName

 (defrule this-is-my-rule 
     ... 
     => 
     (printout t "this-is-my-rule: and these are the outputs" crlf) ;;#1 
    ) 

Statt 1 manuell den Namen der Regel in # zu schreiben, würde Ich mag einen psecific Befehl verwenden (falls vorhanden). Ist es möglich, bitte?

Thank

Nicola

Antwort

0

Es gibt keinen Mechanismus für programmatisch den Namen der aktuell ausgeführten Regel zu bestimmen, aber Sie können die Uhr verwenden Sie den Befehl Debuggen den Namen jeder Regel zu drucken, wie es ausgeführt wird :

CLIPS> (defrule rule-1 =>) 
CLIPS> (defrule rule-2 =>) 
CLIPS> (defrule rule-3 =>) 
CLIPS> (watch rules) 
CLIPS> (run) 
FIRE 1 rule-3: * 
FIRE 2 rule-2: * 
FIRE 3 rule-1: * 
CLIPS>