次のプログラムがプロローグにロードされていると仮定します。
?- listing.
fast(ann).
slow(bob).
slow(norm).
true.
?-
このプログラムに次のルールを追加するにはどうすればよいですか?
faster(X,Y) :- fast(X), slow(Y).
誰かが私がそれを書くのを手伝ってくれる?
次のプログラムがプロローグにロードされていると仮定します。
?- listing.
fast(ann).
slow(bob).
slow(norm).
true.
?-
このプログラムに次のルールを追加するにはどうすればよいですか?
faster(X,Y) :- fast(X), slow(Y).
誰かが私がそれを書くのを手伝ってくれる?
2つのオプションがあります。
faster.pl
、そのファイルを次のようにロードします[faster].
[user].
し、ルールを入力してEOF(SWI-PrologではCtrl+ )を発行します。DPrologデータベースは動的です:ルールのベースへの変更はassertz /1とretract/1で達成できます。次に、@ larsmanの回答に追加して、次のように書くことができます
?- assertz((faster(X,Y) :- fast(X), slow(Y))).
その後、あなたの事実ベースから:
?- faster(X,Y).
X = ann,
Y = bob ;
X = ann,
Y = norm.