Tag Archives: Amzi

教程中的例子使用的是Amzi来编译。我用的则是SICStus,但是在试验本节中的语句时出现了“Permission error: cannot retract static user:here/1”的问题,修改解释器的Language为SICStus或ISO均出现此问题,觉得应该是解释器不同造成的差异,于是在Amzi下试验,发现运行正常,后经在网上查找资料,发现SICStus中Consult后的谓词语句都是静态的,如果想对其进行动态的修改,需要用dynamic修改原文件。

比如在本例中,需要在:

here(kitchen).

前增加如下语句:

:- dynamic here/1.

即(见图1):

:- dynamic here/1.
here(kitchen).

这样在SICStus就可以成功执行goto/1了(见图2)。

clip_image001

图1 pro文件

clip_image002

图2 运行效果

Read More →