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

Dou*_*ean 3 haskell numbers

为什么是班级atan2的一部分,RealFloat而不是(有点奇怪的名字)Floating班级?

我没有看到它在逻辑上取决于它是什么Real(我理解为不是抽象的数字类,在某种意义上它们可以被转换为Rational它们自身的一些近似值).

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

(预期密切的选民:我不只是在咆哮Haskell数字塔.我真的认为这个问题有一个答案,我只是把我的焦点放在了错误的地方才能看到它.)

bhe*_*ilr 7

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