gprolog包含指令不起作用

时间:2013-06-03 23:47:50

标签: prolog gnu-prolog

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

我写了一个小的prolog程序,运行正常。我在其中定义了一些谓词,我想提升并在其他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

所以它显然不承认该指​​令。我已经遍地搜索过,找不到任何理由发生这种情况。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

要在源文件中使用include / 1指令,请在(:-)/1运算符之前写入。例如:

:- include('tools.pro').

答案 1 :(得分:0)

include/1用于在Prolog源文件中使用。

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