2015-08-13 39 views
1

我試圖收回表格的所有事實:CLIPS第一場匹配模式的

(<something> task-error) 

要做到這一點,我寫的規則:

(defrule retract-task-error "retract task error" 
     (declare (salience -1000)) 
     ?f <- (?n task-error) 
     => 
     (retract ?f) 
) 

但它不與錯誤的工作:

[PRNTUTIL2] Syntax Error: Check appropriate syntax for the first field of a pattern. 

有沒有可能實現與CLIPS這個任務還是我需要一個代碼重排,以避免匹配事實的第一場?

回答

1

模式的第一個字段必須是符號。最簡單的解決方案可能是在所有可能包含任務錯誤的事實和模式的開始處添加通用符號(例如任務):

(defrule retract-task-error "retract task error" 
     (declare (salience -1000)) 
     ?f <- (task ?n task-error) 
     => 
     (retract ?f) 
)