我在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
所以它显然不承认该指令。我已经遍地搜索过,找不到任何理由发生这种情况。有什么想法吗?
答案 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'].