我只关注七周七语言。
我已使用命令port install gprolog-devel
在我的Mac机器上安装gprolog并运行第一个prolog代码。
likes(wallace, cheese).
likes(grommit, cheese).
likes(wendolene, sheep).
friend(X, Y) :- \+(X = Y), likes(X, Z), likes(Y, Z).
如果我在prolog解释器上输入likes(wallace, cheese).
,我就有错误
未捕获的异常:错误(exist_error(procedure,likes / 2),top_level / 0)。
Prolog 1.3.1无法在我的Mac上安装,我正在使用prolog 1.4.0。
答案 0 :(得分:38)
交互式gprolog解释器针对加载的谓词列表运行查询,这就是您获得existence_error
异常的原因。您必须将谓词加载到其中,方法是使用为您加载或手动加载的IDE。
这是一种方法:
| ?- [user].
compiling user for byte code...
likes(wallace, cheese).
likes(grommit, cheese).
likes(wendolene, sheep).
friend(X, Y) :- \+(X = Y), likes(X, Z), likes(Y, Z).
* Press Ctrl-D to end input. *
user compiled, 6 lines read - 909 bytes written, 15538 ms
yes
| ?- friend(wallace,grommit).
yes
| ?- friend(wallace,wendolene).
no
gprolog手册在Consulting a Prolog program
章节中写到了这一点