Ho scritto un predicato fib/2 per calcolare i numeri di Fibonacci in Prolog. se funziona, si dice sempre "fuori pila locale" e l'errore si presenta come:Perché il mio predicato in Prolog Fib/2 dice sempre "fuori dallo stack locale"?
?- fib(10, F).
F = 55 ;
ERROR: Out of local stack
mia predicato è di seguito:
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.
Chiunque sa perché questo è e come risolvere il problema alla ottenere le seguenti cose:
% or the search might stop immediately, without pressing space.
?- fib2(10, F).
F = 55 ;
false.
Grazie in anticipo!
Ancora loop con 'fib (1, 0)' che non dovrebbe riuscire. – false