0
我試圖建立一個模板,用於存儲一些我計算的結果,所以我做了這個初始化:如何使用deftemplate將結果存儲在CLIPS中?
(deftemplate tempAlumne
(slot nota-media-total)
(slot nota-media-obligatorias)
(slot nota-media-optativas)
(slot nota-media-ales)
)
(deffacts tempAlumneFacts
(tempAlumne
(nota-media-total -1)
(nota-media-obligatorias -1)
(nota-media-optativas -1)
(nota-media-ales -1)
)
)
然後我嘗試使用結構來存儲值,但我需要它從許多規則中都可以訪問,所以我決定讓它成爲全球性的。於是,我就保存這樣的價值觀:
(defrule calcula-nota-media ""
(not calcula-nota-media ok)
?*tmpA* <- (tempAlumne)
=>
(bind ?llista_convocs (send ?*alumne* get-IConvocatoria))
(bind ?suma 0)
(bind ?i 0)
(while(< ?i (length$ ?llista_convocs)) do
(bind ?convoc_actual (nth$ ?i ?llista_convocs))
(bind ?suma (+ ?suma (send ?convoc_actual get-Nota)))
(bind ?i (+ ?i 1))
)
(/)
(modify (?*tmpA* (nota-media-total (/ ?suma ?i))
(assert calcula-nota-media ok)
)
,因爲我想* TMPA *有初始值,然後分配每一個與修改(這裏我給你諾塔 - 媒體總),但它說「? [PRNTUTIL2]語法錯誤:檢查適當的defrule語法。「,所以我不知道什麼是錯的,或者如果我走錯了路。