为什么会atan2(1,3).
产生false
?
我希望它以弧度返回一个角度,如此处所述:http ://www.swi-prolog.org/man/arith.html
因为您拥有的是事实数据库查询,而您想要的是数学评估。比较一下:
?- 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
无限循环或其他错误。