0
我希望能退回和動態斷言事實的程序location
:無法作出事實動態在SWI-Prolog的
location(egg, duck_pen).
基於諮詢在線(包括No permission to modify static procedure),我嘗試添加以下每個到我的源代碼,否則,只包含上面的表述:
dynamic location/2.
dynamic(location/2).
dynamic(location)/2.
前兩個版本給我這個錯誤在編譯時(當加載到SWI-Prolog的):
No permission to redefine built-in predicate `(dynamic)/1'
Use :- redefine_system_predicate(+Head) if redefinition is intended
的最後一個版本並沒有給我在編譯時錯誤,但是,無論我把它的開頭或文件的末尾,我得到一個錯誤,當我試圖收回我的事實:
?- retract(location(egg,duck_pen)).
ERROR: retract/1: No permission to modify static procedure `location/2'
我正在使用SWI-Prolog版本6.6.5。