在 Jess 中,假設(shè)我的事實(shí)庫由幾個(gè)名稱-值對組成,例如(node1 6.5) (node2 100) (node3 0.5)如何實(shí)現(xiàn)“更新”這些值,例如“node1”值從 6.5 到 100,而不需要手動(dòng)撤回?另外,在某個(gè)規(guī)則被解雇后,有沒有辦法“重申”所有事實(shí)?
1 回答

蠱毒傳說
TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
您使用 Jess 的(modify)
函數(shù)來修改事實(shí)。像這樣的有序事實(shí)(node1 6.5)
在內(nèi)部表示為帶有名為 的單個(gè)槽的無序事實(shí)__data
,因此您可以利用這些知識來修改它們:
Jess> (assert (node1 6.5))
<Fact-0>
Jess> (modify 0 (__data 7.5))
<Fact-0>
Jess> (facts)
f-0? ?(MAIN::node1 7.5)
For a total of 1 facts in module MAIN.
現(xiàn)在,考慮到所有這些,為了提高效率,我仍然建議您使用無序模板,例如
(node (slot index) (slot value))
讓你的事實(shí)看起來像
(node (index 1) (value 6.5))
(node (index 2) (value 100))
關(guān)于你的最后一個(gè)問題:我不太確定你的意思,但你可以查找構(gòu)造(deffacts)和(reset)函數(shù),看看它們是否可以滿足你的需要。
添加回答
舉報(bào)
0/150
提交
取消