我很难理解为什么fib([1,2],F)
找到第二个解决方案,错误的,具有以下条款和规则:
fib([A,B|C],F) :-
fib([B|C],S),
fib(C,T),
F is (S+T).
fib([A],1).
fib([],0).
按照我的逻辑分析fib([1,2],F)
,我应该只是得到结果F = 2
。我需要一些帮助来理解为什么 Prolog 会找到第二种解决方案,即false
.
我很难理解为什么fib([1,2],F)
找到第二个解决方案,错误的,具有以下条款和规则:
fib([A,B|C],F) :-
fib([B|C],S),
fib(C,T),
F is (S+T).
fib([A],1).
fib([],0).
按照我的逻辑分析fib([1,2],F)
,我应该只是得到结果F = 2
。我需要一些帮助来理解为什么 Prolog 会找到第二种解决方案,即false
.