获取简单的Prolog示例

时间:2014-03-15 08:25:03

标签: prolog

我想在我的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)
| ?- 

我的装置坏了或我做错了什么?

1 个答案:

答案 0 :(得分:6)

在Prolog中,变量以大写字母(或下划线)开头,因此您使用目标[HelloProlog]获得实例化错误。只需使用['HelloProlog']即可。即将文件路径表示为Prolog原子,当它们以大写字母开头时需要单引号。

您获得的存在错误仅仅是由于查询谓词未定义。您需要先加载HelloWorld.pl文件。