为什么atan2(1,3).
会产生false
?
我希望它返回如下所述的弧度角度:http://www.swi-prolog.org/man/arith.html
答案 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}},无限循环或其他错误。