以下代码
itD(Start, End, Distance, Max) :-
Distance < Max,
newDistance is Distance+1,
itD(Start, End, newDistance, Max).
给了我一个非常奇怪的失败。
2 2 Call: 0<15 ?
2 2 Exit: 0<15 ?
3 2 Call: newDistance is 0+1 ?
3 2 Fail: newDistance is 0+1 ?
我真的不明白。因为我使用的是非常基本的算术。
| ?- Distance is 1, NewDistance is Distance+1.
Distance = 1
NewDistance = 2
yes
如您所见,我没有任何问题,所以在控制台中编写相同的操作。
如果有人能帮我解决这个奇怪的算术问题,我会非常高兴。