错误:未定义的程序:(: - )/ 2

时间:2013-01-16 11:38:29

标签: prolog prolog-toplevel

我是 Prolog 的新手,我正试图在 SWI-Prolog shell上设置规则,例如

listensToMusic(X) :- happy(X).

但它提示 -

ERROR: Undefined procedure: (:-)/2

我使用SWI-Prolog版本6.2.6

2 个答案:

答案 0 :(得分:2)

SWI-Prolog不接受顶级新规则和事实,只接受查询。

通常通过将规则写入文本文件(例如rules.pl)来添加规则,并使用以下命令将其加载到SWI-Prolog中:

?- [rules].

文件的绝对路径可以像这样使用:

?- ['C:/Program Files/pl/demo/likes'].

您可以通过发出[user].,输入规则并以EOF结尾(通常为Ctrl-D)来输入规则:

?- [user].
|: listensToMusic(X) :- happy(X).
|: <EOF> 
true.

有关此主题的详细常见问题解答:ERROR: Undefined procedure: (:-)/1 | (:-)/2 | (?-)/1

答案 1 :(得分:1)

我的Prolog技能充其量只是尘土飞扬,但据我记得你应该在文件中声明事物,然后查阅文件将其加载到工作区中,然后使用shell来询问有关工作区的问题。要在shell中声明某些内容需要断言。