为什么atan2
是RealFloat
类的一部分而不是(有点奇怪的名称)Floating
类?
我不知道它在Real
中的逻辑依赖性(我理解为不是抽象的数字类别,因为它们可以转换为某些数字Rational
近似自己)。
我也不明白为什么它与RealFloat
的任何其他成员有关,这些成员与打包和解包指数/尾数表示有关。
(潜在的亲密选民:我不只是对Haskell数字塔进行咆哮。我真的认为这个问题有一个答案,而我只是把我的注意力集中在错误的地方才能看到它。)
答案 0 :(得分:7)
我想它会来自如何处理复数。 atan2
函数用于处理(x, y)
坐标,但这对复杂值不起作用,因为两个复数值表示与4个实数值相同的信息量。对于复杂的数字,atan2
没有任何意义,但atan
当然可以。由于atan2
对于使用角度的任何程序来说都是非常重要的函数,因此它在RealFloat
中的位置很可能是由于实用性而非纯数学。