私は「7週間で7つの言語」という本をフォローしています。
コマンド_port install gprolog-devel
_を使用してMacマシンにgprologをインストールし、最初のプロローグコードを実行しました。
_likes(wallace, cheese).
likes(grommit, cheese).
likes(wendolene, sheep).
friend(X, Y) :- \+(X = Y), likes(X, Z), likes(Y, Z).
_
プロローグインタープリターでlikes(wallace, cheese).
と入力すると、エラーが発生します
キャッチされない例外:error(existence_error(procedure、likes/2)、top_level/0)。
Prolog1.3.1をMacにインストールできませんでした。Prolog1.4.0を使用しています。
対話型のgprologインタープリターは、ロードされた述語のリストに対してクエリを実行します。そのため、existence_error
例外が発生します。 IDEを使用してロードを行うか、手動で行うことにより、述語をロードする必要があります。
これが1つのアプローチです:
| ?- [user].
compiling user for byte code...
likes(wallace, cheese).
likes(grommit, cheese).
likes(wendolene, sheep).
friend(X, Y) :- \+(X = Y), likes(X, Z), likes(Y, Z).
* Press Ctrl-D to end input. *
user compiled, 6 lines read - 909 bytes written, 15538 ms
yes
| ?- friend(wallace,grommit).
yes
| ?- friend(wallace,wendolene).
no
Gprologマニュアルはこの章にこれについて書いています Prologプログラムのコンサルティング