2011-08-05 4 views
3

읽는 중 Learn Prolog Now, 1.1.2 기술 자료 2 그들은 modus ponens를 함께 사용하는 것에 대해 글을 씁니다.왜 gprolog는 modus ponens를 함께 사용하지 않습니까?

KB2.pl 파일 : 쿼리

listensToMusic(mia). 
happy(yolanda). 
playsAirGuitar(mia) :- listensToMusic(mia). 
playsAirGuitar(yolanda) :- listensToMusic(yolanda). 
listensToMusic(yolanda) :- happy(yolanda). 

:

playsAirGuitar(yolanda). 

이 gprolog에 제출되어,은 (는)에서 추론 할 수 있어야하기 때문에, yes 응답하도록되어 사실 놀란다는 행복합니다.

그러나 gprolog는 no으로 응답합니다. 왜 그런가요?

+0

감사 같은 경고를한다 .org /) :). –

답변

2

문제는 predicate listensToMusic/1의 절이 분리되어 있다고 생각합니다.

다음 코드는 나를 위해 yes를 반환 : //www.learnprolognow :

listensToMusic(mia). 
listensToMusic(yolanda) :- happy(yolanda). 
happy(yolanda). 
playsAirGuitar(mia) :- listensToMusic(mia). 
playsAirGuitar(yolanda) :- listensToMusic(yolanda). 

당신이 [ "이제 프롤로그 알아"] (HTTP를 가리키는 위해

warning: discontiguous predicate listensToMusic/1 - clause ignored 
+0

고마워요! 그것은 그것을 고쳤다. – systemovich

관련 문제