これは、誰がjohnと互換性があるかを調べる必要があるプログラムです。私はPrologを初めて使用します。Prologに知らせるために例えば。met(X、Y)= met(Y、X)たくさんのコードが書かれています。クエリを開始すると
?- compatible(john, X)
それは無限のループに入ります...
ソースコード:
compatible(X,Y) :- reading(X), reading(Y).
compatible(X,Y) :- football(X), football(Y).
compatible(X,Y) :- friends(X,Y).
compatible(X,Y) :- mutual(X,Y).
friends(X,Y) :- havemet(X,Y), compatible(X,Y).
havemet(X,Y) :- met(X,Y).
havemet(X,Y) :- met(Y,X).
mutual(X,Y) :- friends(X,Temp), friends(Y,Temp).
mutual(X,Y) :- friends(Temp,X), friends(Y,Temp).
mutual(X,Y) :- friends(X,Temp), friends(Temp,Y).
mutual(X,Y) :- friends(Temp,X), friends(Temp,Y).
football(john).
football(james).
friends(john, carl).
friends(carl, john).
reading(carl).
reading(fred).
reading(emily).
met(carl, emily).
met(fred, james).
met(fred, emily).
私はこれまで多くのことを研究してきましたが、何が問題で、どのようにそれを修正するのかまだわかりません。私を助けてくれるといいですね。