我正在拔头发!我已经在我的 Mac 上安装了 gprolog(1.4.4),并且我正在遵循(我认为)Gnu Prolog 手册中的说明,但是交互式环境不记得我的定义:
GNU Prolog 1.4.4 (64 bits)
Compiled Sep 26 2016, 00:06:17 with clang
By Daniel Diaz
Copyright (C) 1999-2013 Daniel Diaz
| ?- [user].
compiling user for byte code...
even(0).
even(s(s(X))) :- even(X).
user compiled, 3 lines read - 362 bytes written, 21729 ms
(2 ms) yes
| ?- even(X).
uncaught exception: error(existence_error(procedure,even/1),top_level/0)
| ?-
从交互式响应中可以看到,我在知识库输入的第二行之后输入了 Ctl-D(我唯一的规则)。Gprolog 说它已经编译了我的三行代码。为什么它不能正确识别我的查询?谢谢!