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)
)
)
そして、私は、値を格納するためにその構造を使用しようとしているが、私はそれを必要とします多くのルールからアクセスできるように、私はそれをグローバルにすることに決めました。 ?私は(ここで私が注意-メディア合計を割り当てる)* TMPA *は初期値を持っているし、変更を各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)
)
:だから私はこのような値を格納しようとしました[PRNTUTIL2]構文エラー:defruleの適切な構文を確認してください。 "、何が間違っているのか、間違ったパスをとっているのか分かりません。