次のコード
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
ご覧のとおり、コンソールに同じ操作を書いても問題はありません。
誰かがこの奇妙な算数の問題を解決するのを手伝ってくれたら本当にうれしいです.