나는이 작업을 수행하는 프로그램 작성입니다 :이해 프롤로그 [목록]
?- pLeap(2,5,X,Y).
X = 2,
Y = 3 ;
X = 3,
Y = 4 ;
X = 4,
Y = 5 ;
X = 5,
Y = 5 ;
false.
것은 (모든 쌍을 제공 X, X + 1 2 5 플러스 끝에 특별한 케이스 사이).
이것은 아마도 해결책 일 것입니다. 나는 그것이 어떻게 작동하는지 정말로 이해하지 못한다. 누군가 그것을 통해 나를 인도 할 수 있을까?
pLeap(X,X,X,X).
pLeap(L,H,X,Y) :-
L<H,
X is L,
Y is X+1.
pLeap(L,H,X,Y) :-
L=<H,
L1 is L+1,
pLeap(L1,H,X,Y).
I는 다음과 같이 간단하게 할 거라고 :
이 가pLeap(L,H,X,Y) :-
X >= L,
X =< H,
Y is X+1.
가
가 왜 (끝에 특별한 경우를 무시) 작동하지 않습니다 ?