0

次のプログラムがプロローグにロードされていると仮定します。

?- listing.
fast(ann).
slow(bob).
slow(norm).
true.
?-

このプログラムに次のルールを追加するにはどうすればよいですか?

faster(X,Y) :- fast(X), slow(Y).

誰かが私がそれを書くのを手伝ってくれる?

4

2 に答える 2

2

2つのオプションがあります。

  1. ルールをファイルに入れて、たとえばfaster.pl、そのファイルを次のようにロードします[faster].
  2. プロンプトで発行[user].し、ルールを入力してEOF(SWI-PrologではCtrl+ )を発行します。D
于 2012-05-20T13:03:30.143 に答える
0

Prologデータベースは動的です:ルールのベースへの変更はassertz /1とretract/1で達成できます。次に、@ larsmanの回答に追加して、次のように書くことができます

?- assertz((faster(X,Y) :- fast(X), slow(Y))).

その後、あなたの事実ベースから:

?- faster(X,Y).
X = ann,
Y = bob ;
X = ann,
Y = norm.
于 2012-05-21T08:20:38.260 に答える