如何使用ECLiPSe Prolog中的模块自由断言/收回事实?

时间:2014-03-29 10:32:14

标签: prolog eclipse-clp

我正在尝试运行以下测试用例:

test :- assertz(abc : uvw(1)).

上述内容适用于SWI-Prolog。但我遇到了问题 使其在ECLiPSe Prolog中有效。我得到了 以下错误:

trying to redefine an existing imported procedure in assertz(abc : uvw(1))

我没有导入abc:uvw / 1,也不存在。任何 周围的标志将允许成功运行test / 0 在ECLiPSe Prolog?

最好的问候

编辑: P.S。:以下措辞也不起作用:

test :- abc : assertz(uvw(1)).

然后只会收到以下错误消息:

lookup module does not exist in abc : assertz(uvw(1)) in module eclipse

1 个答案:

答案 0 :(得分:4)

ECLiPSe使用@ -annotation指定谓词的上下文模块:

test :- assertz(uvw(1)) @ abc.

另见http://www.eclipseclp.org/doc/bips/kernel/control/A-2.html