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

Prolog 错误:未定义的过程:(:-)/2,prolog,prolog-toplevel,Prolog,Prolog Toplevel,我是Prolog新手,我正在尝试设置SWI Prolog shell的规则,例如- listensToMusic(X) :- happy(X). 但它提示- ERROR: Undefined procedure: (:-)/2 我使用SWI Prolog版本6.2.6SWI Prolog不接受顶层的新规则和事实,它只接受查询 通常通过将规则写入文本文件(例如Rules.pl)来添加规则,并使用以下命令将其加载到SWI Prolog中: ?- [rules]. 文件的绝对路径可以这样使用:

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

listensToMusic(X) :- happy(X).
但它提示-

ERROR: Undefined procedure: (:-)/2

我使用SWI Prolog版本6.2.6

SWI Prolog不接受顶层的新规则和事实,它只接受查询

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

?- [rules].
文件的绝对路径可以这样使用:

?- ['C:/Program Files/pl/demo/likes'].
您可以通过发出[user]、键入规则并以EOF结束(通常为Ctrl-D)来键入规则:

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

关于这个问题有一个详细的常见问题解答:

SWI Prolog不接受顶层的新规则和事实,它只接受查询

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

?- [rules].
文件的绝对路径可以这样使用:

?- ['C:/Program Files/pl/demo/likes'].
您可以通过发出[user]、键入规则并以EOF结束(通常为Ctrl-D)来键入规则:

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

关于这个问题有一个详细的常见问题解答:

我的Prolog技能充其量也不可靠,但据我所知,你应该在文件中声明内容,然后查阅文件将其加载到工作区,然后使用shell询问有关工作区的问题。在shell中声明某些内容需要一个断言。

我的Prolog技能充其量也不太好,但据我所知,您应该在文件中声明内容,然后查阅文件将其加载到工作区,然后使用shell询问有关工作区的问题。要在shell中声明某些内容,需要一个断言。

谢谢,以及我如何编写[规则]。如果rules.pl与SWI Prolog位于不同的目录中,请将绝对路径用引号引起来:['C:/Program Files/pl/demo/likes']。谢谢,以及我如何编写[rules]。如果rules.pl与SWI Prolog位于不同的目录中,请将绝对路径用引号引起来:['C:/Program Files/pl/demo/likes']。