2012-01-10 62 views
2

,我無意中發現了一個相當奇怪的問題(對我來說)。Prolog的算術加

很容易,我想2個整數之間的加法。我使用swi

加從句現在,當我這樣做(我在圖形計算的東西)

plus(LatestTime,LengthPath,TimeArrive), 

的TimeArrive變量是一個物理地址,而不是答案。 現在我試圖做出其他條款

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

這裏是一樣的,所以我開始相信自己是有毛病我2個輸入變量

LatestTime,LengthPath 

然而,當我'寫'他們我收到整數,而不是物理地址。

任何線索?因爲我出想法的:)

+1

我已經用一個 TimeArrive替換加固定它是LatestTime + LengthPath 但儘管如此,我很無能,爲什麼序言給了我一個物理地址,而不是一個整數。 – Christophe 2012-01-10 20:21:58

+1

這是一個有點難以猜測什麼錯沒有的休息代碼;我想,如果一個結構是參與或一些副作用,雖然我不能看到如何更換myPlus/3固定它 – 2012-01-10 21:29:44

+0

你說的是「物理層意思ical地址「? – 2012-01-11 14:43:06

回答

1

使用的表達整數值之間的關係儘可能!

在一般情況下,我認爲這是最好使用所有整數計算,而不是可逆的‘「通過(is)/2純老Prolog的算術你考慮---不只是那些’。