我是Prolog的新手,我正在尝试在SWI-Prolog shell 上设置规则,例如 -
listensToMusic(X) :- happy(X).
但它提示——
ERROR: Undefined procedure: (:-)/2
我使用 SWI-Prolog 版本 6.2.6
我是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.
关于这个主题有一个详细的常见问题解答:错误:未定义的过程:(:-)/1 | (:-)/2 | (?-)/1
我的 Prolog 技能充其量是尘土飞扬,但据我所知,您应该在文件中声明内容,然后查阅文件以将其加载到工作区中,然后使用 shell 询问有关工作区的问题。在 shell 中声明某些东西需要一个断言。