0

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

我希望它以弧度返回一个角度,如此处所述:http ://www.swi-prolog.org/man/arith.html

4

1 回答 1

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)没有变量的语句应该只会让你truefalse无限循环或其他错误。

于 2013-04-16T03:18:29.917 回答