저는 프롤로그 초보자이고이 코드의 출력을 반대로 할 방법을 찾고 있습니다.프롤로그 초보자 - 역방향 출력 목록
fib(N, F) :- fib(N, 0, [1], F).
fib(0, _, A, A).
fib(N, A, [B|Bs], F) :- N1 is N - 1, Sum is A + B, fib(N1, B, [Sum,B|Bs], F).
코드 N
의 값 피보나치 수를 계산하고, F
에 결과를 출력한다.
예를 들어 fib(4,X).
은 X=[5,3,2,1,1]
을 생성합니다. 내가 원하는 것은 X=[1,1,2,3,5]
(역전 출력)이다.
이 형식으로 가져 오지 못하고 꼬리 재귀 속성을 유지할 수 없습니다.
fib(N, F) :- fib(N, 0, [1], FRev), reverse(FRev, F).
는 반대의 순서로 목록을 구축하려는 경우, 당신은해야합니다 : 어떤 도움
고맙습니다. –