我在哪里可以找到该fromRealFrac
功能?根据温和的介绍,该功能应该存在,并且通过一些谷歌搜索,我认为它应该在 Prelude 中 - 但 ghci 抱怨它不在范围内。
我暂时使用fromRational . toRational
的是,根据温和的介绍,这fromRealFrac
就是要定义的方式。
以前称为“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
我能找到的最接近的提交是在报告存储库中。
看来这个函数是realToFrac
在 GHC Prelude 中调用的。
根据Hoogle的说法,标准库中没有命名函数。fromRealFrac
也许这是温和介绍的作者自己编造的一个功能?查看链接后,他们当然建议它在某个图书馆中……我也很困惑。