我想使用以下函数计算斐波那契数列:
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)
有人知道为什么会发生这种情况吗?