2012-01-10 63 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的算术你考虑---不只是那些’。