8

我在哪里可以找到该fromRealFrac功能?根据温和的介绍,该功能应该存在,并且通过一些谷歌搜索,我认为它应该在 Prelude 中 - 但 ghci 抱怨它不在范围内。

我暂时使用fromRational . toRational的是,根据温和的介绍,这fromRealFrac就是要定义的方式。

4

3 回答 3

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 报告勘误表中:

[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

我能找到的最接近的提交是在报告存储库中。

于 2013-03-11T09:58:00.383 回答
5

看来这个函数是realToFrac在 GHC Prelude 中调用的。

于 2013-03-11T07:35:27.633 回答
2

根据Hoogle的说法,标准库中没有命名函数。fromRealFrac也许这是温和介绍的作者自己编造的一个功能?查看链接后,他们当然建议它在某个图书馆中……我也很困惑。

于 2013-03-11T04:01:06.320 回答