开发工具依然是GNU-Prolog,在案例中有这样的小问题如下:
效果如下:记得第一步初始化here谓词。
希望对你有帮助。
here(kitchen).
move(Place):- retract(here(X)), asserta(here(Place)).
我执行move(office).后,
错误提示如下:
<span style="color:#FF0000;">ERROR: retract/1: No permission to modify static_procedure `here/1'</span>
错误很明显:不要使用静态的过程here/1. 如果大家直接把所有的事实和规则下载GNU-Prolog就不会出现这个问题。
解决方法是:
here(kitchen).你应将程序文件中的here(kitchen).删掉, 并用asserta(here(kitchen))来初始化here谓词, 这样系统就知道here谓词是动态的了, 以后就可以对其进行更改了.
效果如下:记得第一步初始化here谓词。
| ?- asserta(here(kitchen)).
yes
| ?- look.
You are in the kitchen
You can see:
apple
broccoli
crackers
You can go to:
office
cellar
dining room
yes
| ?- goto(office).
You are in the office
You can see:
desk
computer
You can go to:
hall
kitchen
希望对你有帮助。