2012-01-10 6 views
2

私はかなり奇妙な問題(私に)を見つけました。プロローグ算術プラス

非常に簡単ですが、私は2つの整数の間の加算をしたいと思います。私は(私はグラフの計算の何かだ)

plus(LatestTime,LengthPath,TimeArrive), 

TimeArrive変数ではなく、答えの物理アドレスであるこれを行うとき、私は今swi

からプラス句を使用します。 は今、私は他の条項に

myPlus(Var1,Var2,Result):- 
    Result is Var1 + Var2. 

を作ってみましたそしてここに同じであるので、私は

LatestTime,LengthPath 

しかし、私の2つの入力変数と間違って何かが自分であると信じて始めてきたとき、私私は物理アドレスの代わりに整数を受け取る '書き込み'。

手がかりはありますか?私は思考の外ですから:)

+1

IましたTimeArriveはLatestTime + LengthPathです しかし、まだプロログが私に整数の代わりに物理アドレスを与えた理由についてはまったく分かりません。 – Christophe

+1

残りの部分が間違っていると推測するのはちょっと難しいですコード、私はif構造体が関与しているか、いくつかの副作用があると思いますが、私はmyPlusの置き換え方を見ることができません/ 3固定しました –

+0

"phys ical address "? –

答えて

1

可能な限り整数値間の関係を表現するのにを使用してください!一般的に

、私はそれがのために代わりに「(is)/2経由プレーン古いPrologの算術演算---あなたが考慮していないものだけ 『』リバーシブルのすべて整数計算をを使用するのが最善だと思います。