2017-04-24 3 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

한 가지 방법은 먼저 두 명의 통역사가 동일한 언어를 사용하는지 확인한 다음 해당 규칙의 부정이 사실인지 확인하는 것입니다.

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

규칙 2는 두 명의 통역사가 같은 언어를 사용하지 않는 경우에만 위의 경우입니다.

+0

죄송 합니다만, "통역사"의 두 번째 입력 사항은 성을 말하고 말하는 언어가 아닌 것을 잊어 버렸습니다. 나는 성을 편집하고 제거 할 것입니다. –

+0

술어에서 말한 언어를 제거한다면, 통역사가 말하는 언어를 어떻게 결정할 수 있습니까? 통역사를 언어에 연결시키는 방법이 있어야합니다. –

+0

나는 당신이하는 말을 이해합니다. 이것은 게시 된 문제의 일부일 뿐이며 어떤 해결책도 얻지 못했습니다. http://stackoverflow.com/questions/43500776/interpreters-riddle-in-prolog –