Napisałem predykat fib/2 do obliczenia liczb Fibonacciego w Prologu. Choć to działa, to zawsze mówi „z lokalnego stosu”, a błąd wygląda tak:Dlaczego mój predykat w Prolog Fib/2 zawsze mówi "z lokalnego stosu"?
?- fib(10, F).
F = 55 ;
ERROR: Out of local stack
mój orzecznikiem jest poniżej:
fib(0, 0).
fib(1, 1).
fib(N, NF) :-
A is N - 1,
B is N - 2,
fib(A, AF),
fib(B, BF),
NF is AF + BF.
Ktoś wie dlaczego tak jest i jak to naprawić je Uzyskaj następujące informacje:
% or the search might stop immediately, without pressing space.
?- fib2(10, F).
F = 55 ;
false.
Z góry dziękuję!
Wciąż pętle z 'fib (1, 0)' które powinny zawieść. – false