我正在尝试运行以下测试用例:
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
答案 0 :(得分:4)
ECLiPSe使用@ -annotation指定谓词的上下文模块:
test :- assertz(uvw(1)) @ abc.
另见http://www.eclipseclp.org/doc/bips/kernel/control/A-2.html