0

次のコード

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

ご覧のとおり、コンソールに同じ操作を書いても問題はありません。

誰かがこの奇妙な算数の問題を解決するのを手伝ってくれたら本当にうれしいです.

4

1 に答える 1

2

これを投稿した直後に、Prolog の変数は大文字で始める必要があることに気付きました。これは、Prolog を初めて使用する人にとってはよくある間違いだと思います。

これが将来誰かを助けることを願っています。

于 2013-09-19T08:55:27.860 に答える