【发布时间】:2013-01-16 11:38:28
【问题描述】:
我是 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.
关于这个主题有一个详细的常见问题解答:ERROR: Undefined procedure: (:-)/1 | (:-)/2 | (?-)/1
【讨论】:
rules.pl 位于与 SWI-Prolog 不同的目录中,我如何编写 [rules].?
['C:/Program Files/pl/demo/likes'].
我的 Prolog 技能充其量是尘土飞扬,但据我所知,您应该在文件中声明内容,然后查阅文件以将其加载到工作区中,然后使用 shell 询问有关工作区的问题。在 shell 中声明一些东西需要一个断言。
【讨论】: