Atan2和Prolog

Atan2和Prolog,prolog,Prolog,为什么atan2(1,3)。产生false 我希望它返回一个弧度的角度,如下所述:因为这里有一个事实数据库查询,而您需要的是数学计算。比较一下: ?- atan2(1,3). ERROR: toplevel: Undefined procedure: atan2/2 (DWIM could not correct goal) 为此: ?- X is atan2(1,3). X = 0.3217505543966422. 后一种形式需要使用is/2来触发数学计算 更一般地说,在数学上下文之外,

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


我希望它返回一个弧度的角度,如下所述:

因为这里有一个事实数据库查询,而您需要的是数学计算。比较一下:

?- 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
false
、无限循环或其他错误清除