来自RealFrac的地方在哪儿?

时间:2013-03-11 03:55:32

标签: haskell

我在哪里可以找到fromRealFrac功能?根据{{​​3}},该函数应该存在,并且从谷歌搜索一下,我收集它应该在Prelude中 - 但是ghci抱怨它不在范围内。

我目前正在使用fromRational . toRational,因为温柔的介绍是fromRealFrac的定义方式。

3 个答案:

答案 0 :(得分:19)

以前称为“fromRealFrac”的函数在Haskell 98报告中被重命名为“realToFrac”。

在我们找到的Haskell 1.4 Prelude

fromRealFrac    :: (RealFrac a, Fractional b) => a -> b
fromRealFrac    =  fromRational . toRational

然而,Haskell 98被称为

realToFrac     :: (Real a, Fractional b) => a -> b
realToFrac      =  fromRational . toRational

此更改列在Haskell 98 Report Errata

[Apr 2001] Page 84, Section 6.4, Fig 7; and bottom of page 86, Section 6.4.6.
    fromRealFrac :: (RealFrac a, Fractional b) => a -> b
should be replaced by
    realToFrac :: (Real a, Fractional b) => a -> b

我能找到的最接近的提交是报告库中的this

答案 1 :(得分:5)

It appears此功能在GHC Prelude中被称为realToFrac

答案 2 :(得分:2)

根据Hoogle,标准库中有no function named fromRealFrac也许是温柔介绍的作者自己组成的一个功能?看完这个链接后,他们肯定会建议它在某个地方的图书馆......我也很困惑。 / p>