Gprolog include指令不工作



我在Fedora 17 Linux机器上运行gprolog 1.4.2版本。

我写了一个运行良好的小序言程序。我在其中定义了一些谓词,我想在其他prolog程序中使用它们。所以我想我会把它们放在一个单独的文件中,并使用include指令(在1.4.2版GNU Prolog手册的第7.1.8节中定义)。然而,它没有起作用。gprolog说这些谓词(在包含的文件中)是未定义的。

所以在gprolog提示符下,我输入:

| ?- include('tools.pro').

得到:

uncaught exception: error(existence_error(procedure,include/1),top_level/0

所以它显然不能识别指令。我到处都找遍了,但找不到发生这种事的任何理由。对此有什么想法吗?

根据ISO Prolog标准的规定,include/1指令,而不是谓词。GNU Prolog严格遵循官方标准,因此您不能将include/1用作谓词,包括在顶级查询中。谢尔盖解释说,如果你想加载你的程序,你可以使用内置谓词consult/1或它的快捷方式([Fie1, File, ...])。

要在源文件中使用include/1指令,请在其前面加上(:-)/1操作符。例如:

:- include('tools.pro').

include/1用于Prolog源文件。

在查询提示符中,您可能只想查阅源文件:['tools.pro'].

相关内容

  • 没有找到相关文章

最新更新