Я новичок в Prolog и ищу способ изменить вывод этого кода.
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]
(обратный вывод).
Кажется, я не могу привести его к этому формату и сохранить свойство хвостовой рекурсии.
спасибо за любую помощь