Prologでフィボナッチ数を計算するために、述語fib/2を書きました。 は、それはそれは常に「ローカル・スタックの外」と言い、働くものの、エラーは次のようになります。これはなぜProlog Fib/2の私の述語が、常に "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.
誰もが知っているし、それを修正する方法:
?- fib(10, F).
F = 55 ;
ERROR: Out of local stack
私の述語は以下の通りです次のものを入手してください::
% or the search might stop immediately, without pressing space.
?- fib2(10, F).
F = 55 ;
false.
ありがとうございます!
'fib(1、0)'のループは失敗するはずです。 – false