我正在尝试使用以下函数计算斐波那契数列:
fib(0,A,_,A).
fib(N,A,B,F) :-
N1 is N-1, Sum is A+B, fib(N1, B, Sum, F).
fib(N, F) :- fib(N, 0, 1, F).
这旨在像这样工作:
| ?- fib(20,Result).
Result = 6765 ?
但是当我尝试这个时,它抱怨:
| ?- fib(What,6765).
uncaught exception: error(instantiation_error,(is)/2)
有谁明白为什么会这样?