私はPrologを初めて使用します。私は単にWindowsVistaのPrologからいくつかの出力を取得しようとしています。
Prolog5.1をダウンロードしてインストールしました。インストール時に.proファイル拡張子を選択しました(Perlファイルと混同しないように)。
test.pro
というファイルを作成しました。このファイルの中に私は以下を入れました:
inside(tom).
?-inside(tom).
ファイルをダブルクリックすると、コマンドラインインターフェイスがポップアップしました。このインターフェース(一般的なPrologバージョン/著作権情報の束の後)での唯一の出力は次のとおりです。
1 ?-
OK、最初に、私はそれが質問質問になるとは思っていませんでした。私はそれがanswer質問(「はい」の線に沿った何か)になると思っていました。
とにかく、私は次のようにクエリに応答しようとしました:
コマンドラインで「inside(tom)」を再挿入したので、行全体は次のようになります。
1 ?- inside(tom).
押した Enter そしてエラーメッセージを受け取りました:
ERROR: toplevel: Undefined procedure: inside/1 (DWIM could not correct goal)
これを最初にコンパイルする必要があります(プロローグでは「相談」とも呼ばれます)。あなたが持っているプロローグのバージョンを知っていれば、このコマンドの正確なキーエントリを見つけることができます(Ctrl-Lが機能する可能性があります)。ちなみに、プロローグの素晴らしい世界へようこそ-私はそれが大好きです:)このハードルを乗り越えるとすぐに、それはずっと良くなります。 :)
あなたがそれを言わなかったならば、Prologは質問に答えません事実。 (member(1, [1,2,3])
などのいくつかの組み込みファクトを除く。)
誰が中にいるのかを知ることができます(コメントは%
に従ってください):
1 ?- [user]. % get facts and rules from user input
|: inside(mary). % Mary and John are explicitly inside
|: inside(john).
|: inside(X) :- location(X, house). % rule: anyone in the house is inside
|: inside(X) :- location(X, office). % (variables start with a capital letter)
|:
|: location(tom, house).
|: location(bernard, house).
|: location(anne, office).
|: % type Ctrl+D
% user://1 compiled 0.00 sec, 1,220 bytes
true.
2 ?- inside(tom). % Prolog deduces that Tom is inside
true .
Prologを学びたいのなら、 今すぐPrologを学ぶ は良い無料のチュートリアルです。
速くて汚い。欠落していたのは、consultと呼ばれるファイルの「コンパイル」であり、構文は次のとおりです。行内のすべての文字が関連しています。
?- [ファイル名]。
次に、データベースで質問したり、他のことをしたりできます。(プロローグのソースコード)