Atan2和Prolog

时间:2013-04-16 01:33:07

标签: prolog

为什么atan2(1,3).会产生false

我希望它返回如下所述的弧度角度:http://www.swi-prolog.org/man/arith.html

1 个答案:

答案 0 :(得分:1)

因为您所拥有的是事实数据库查询,所以您需要的是数学评估。比较一下:

?- atan2(1,3).
ERROR: toplevel: Undefined procedure: atan2/2 (DWIM could not correct goal)

对此:

?- X is atan2(1,3).
X = 0.3217505543966422.

后一种形式,需要使用is/2来触发数学评估。

更一般地说,在数学上下文之外,Prolog函数不会“返回”,它们统一参数,因此诸如atan2(1,3)之类的语句没有变量只应该净你true,{ {1}},无限循环或其他错误。