2017-12-01 4 views
1

프롤로그에서 반환 값은, 그것이 나에게 나는 내 코드의 문제점이 무엇인지 모르는 잘못된 대답을 몇 가지 경우를 넣어 설정나는 프롤로그에서 두 <strong>페 아노의 수</strong>의 모드 기능의 간단한 경우를 쓰기 위해 노력하고 있어요

C는 D의 반환 C

mod(C,D,F):- smaller(C,D) -> mod(C,D,C). 

보다 작은 I 출력

는 감사가없는 경우

간단한 경우는 입니다. 단순히 이렇게함으로써

+2

보다 작은 경우 즉, C를 반환합니다 'small (C, D)'가 성공하면)'C'가'mod (D, C)'를 호출하는 반복적 인 체크를합니다. 큰 단서는 당신의 결과가'F'이어야하지만 당신은 당신의 술어 절에서'F'에 대한 참조를하지 않습니다. 당신은'F'에 대한 경고 singleton 변수를 보았을 것입니다. (C, D)'성공 (힌트 :'F ') – lurker

+0

예이 조건이 올바른지 확인하고 싶습니다. c가 d보다 작습니다. –

+1

힌트를 위해 제 의견을주의 깊게 읽으십시오. – lurker

답변

1

: -

mod(C,D,C):- smaller(C,D) 

smaller 술어가 true을 반환하는 경우 그것은 (C는 C`가 D` '보다 작은'경우 D.