我想在我的Linux机器上运行一个简单的gprolog
,从Ubuntu软件中心安装GNU Prolog。
从GNU Prolog Intro我得到了以下示例,存储在HelloWorld.pl
。
parent(hank,ben).
parent(hank,denise).
parent(irene,ben).
parent(irene,denise).
parent(alice,carl).
parent(ben,carl).
parent(denise,frank).
parent(denise,gary).
parent(earl,frank).
parent(earl,gary).
grandparent(X,Z):-parent(X,Y),parent(Y,Z).
ancestor(X,Y):-parent(X,Y).
ancestor(X,Y):-parent(Z,Y),ancestor(X,Z).
我开始gprolog
,输入[HelloProlog].
并收到以下错误:
| ?- [HelloProlog].
uncaught exception: error(instantiation_error,consult/1)
即使我没有从文件加载代码但是以交互方式运行它,我也会收到错误:
uwe@z11:~/desktop$ gprolog
GNU Prolog 1.3.0
By Daniel Diaz
Copyright (C) 1999-2007 Daniel Diaz
| ?- parent(Luke,Anakin).
uncaught exception: error(existence_error(procedure,parent/2),top_level/0)
| ?-
我的装置坏了或我做错了什么?
答案 0 :(得分:6)
在Prolog中,变量以大写字母(或下划线)开头,因此您使用目标[HelloProlog]
获得实例化错误。只需使用['HelloProlog']
即可。即将文件路径表示为Prolog原子,当它们以大写字母开头时需要单引号。
您获得的存在错误仅仅是由于查询谓词未定义。您需要先加载HelloWorld.pl
文件。