为什么在RealFloat类中定义了Haskell前奏的atan2函数?

时间:2015-03-26 22:45:15

标签: haskell numbers

为什么atan2RealFloat类的一部分而不是(有点奇怪的名称)Floating类?

我不知道它在Real中的逻辑依赖性(我理解为不是抽象的数字类别,因为它们可以转换为某些数字Rational近似自己)。

我也不明白为什么它与RealFloat的任何其他成员有关,这些成员与打包和解包指数/尾数表示有关。

(潜在的亲密选民:我不只是对Haskell数字塔进行咆哮。我真的认为这个问题有一个答案,而我只是把我的注意力集中在错误的地方才能看到它。)

1 个答案:

答案 0 :(得分:7)

我想它会来自如何处理复数。 atan2函数用于处理(x, y)坐标,但这对复杂值不起作用,因为两个复数值表示与4个实数值相同的信息量。对于复杂的数字,atan2没有任何意义,但atan当然可以。由于atan2对于使用角度的任何程序来说都是非常重要的函数,因此它在RealFloat中的位置很可能是由于实用性而非纯数学。