2017-04-24 6 views
1

私は通訳と言語を持っています。プロローグのヒントを排除する

interpreter(fran,french). 
interpreter(geraldine,german). 
interpreter(dudley,dutch). 
interpreter(spike,spanish). 
interpreter(polly,polish). 
interpreter(ron,romanian). 

language(french). 
language(german). 
language(dutch). 
language(spanish). 
language(polish). 
language(romanian). 

とルール: 通訳者は同じ言語を話さない。

助けが必要ですか?

答えて

0

これにアプローチする1つの方法は、最初に2人の通訳者が同じ言語を話しているかどうかを確認し、そのルールの否定が真であるかどうかを確認することです。

rule2 :- not(nrule2(X, Y)). 
nrule2(X, Y) :- interpreter(X, L1), interpreter(Y, L2), X \= Y, L1 = L2. 

ルール2は、2人の通訳者が同じ言語を話さない場合にのみ真です。

+0

申し訳ありませんが、「通訳者」の2番目の入力は姓であり、話す言語ではないことに言及しています。 –

+0

述語から話された言語を削除すると、通訳者がどの言語を話すのかはどのように決定されますか?通訳者を言語にリンクさせるには何らかの方法が必要です。 –

+0

私はあなたが言っていることを理解しています。これは問題の一部に過ぎず、私は投稿して解決策を得られませんでした。これは全体の画像です: http://stackoverflow.com/questions/43500776/interpreters-riddle-in-prolog –