Prolog でフィボナッチ数を計算する述語 fib/2 を書きました。動作しますが、常に「ローカルスタック外」と表示され、エラーは次のようになります。
?- fib(10, F).
F = 55 ;
ERROR: Out of local stack
私の述語は以下です:
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.
これがなぜなのか、次のものを得るためにそれを修正する方法は誰でも知っています::
% or the search might stop immediately, without pressing space.
?- fib2(10, F).
F = 55 ;
false.
前もって感謝します!