私はPrologの初心者です。たとえば、 SWI-Prologシェルでルールを設定しようとしています-
listensToMusic(X) :- happy(X).
しかし、それは促します -
ERROR: Undefined procedure: (:-)/2
SWI-Prolog バージョン 6.2.6 を使用しています
私はPrologの初心者です。たとえば、 SWI-Prologシェルでルールを設定しようとしています-
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.
この件については、精巧な FAQ があります: ERROR: Undefined procedure: (:-)/1 | (:-)/2 | (?-)/1
私のPrologスキルはせいぜいほこりっぽいですが、私が覚えている限り、ファイルで物事を宣言し、ファイルを調べてワークスペースにロードし、シェルを使用してワークスペースについて質問することになっています。シェルで何かを宣言するには、アサーションが必要になります。