1
我:無法縮進()?
:- dynamic blah/2.
retractall(blah(_,_)).
但我仍然得到:
No permission to modify static procedure `retractall/1'
如何刪除等等所有發生的()? 順便說一句,它在swipl控制檯工作!
感謝
我:無法縮進()?
:- dynamic blah/2.
retractall(blah(_,_)).
但我仍然得到:
No permission to modify static procedure `retractall/1'
如何刪除等等所有發生的()? 順便說一句,它在swipl控制檯工作!
感謝
謂詞retractall/1
是一個標準內置謂詞,因此,在大多數系統中,不能由用戶重新定義。在你的代碼中,你試圖爲這個謂詞定義一個事實,因此是錯誤信息。但在控制檯上,您將其用作目標,即您只需調用內置謂詞即可。
如果你想確保有對blah/2
謂詞沒有條款時加載源文件,然後使用替代initialization/1
標準指令:
:- initialization(retractall(blah(_, _))).
感謝。不適用於我,因爲它似乎初始化()在文件加載後調用。我希望得到相反的結果,即在採集文件之前調用它,以便清理當前狀態(blah())。我需要這主要用於swipl測試,而不是運行程序。我還得到:「語法錯誤:操作員優先級衝突」!再次感謝 – user1019129
@ user1019129:錯過右括號。 – CapelliC
對不起,錯誤是由於不同的原因。 – user1019129