2013-03-11 196 views
8

我在哪裏可以找到fromRealFrac功能?根據the gentle intro該函數應該存在,並從一些谷歌搜索,我認爲它應該在前奏 - 但ghci抱怨說,它不在範圍內。哪裏來自RealFrac?

我暫時使用fromRational . toRational,因爲按照溫柔的介紹,fromRealFrac是如何定義的。

+1

我的猜測是這個函數被(重新)移動後哈斯克爾98. – 2013-03-11 03:59:50

+1

這很可能是一個溫和的介紹錯字。你想要'realToFrac'。 – augustss 2013-03-11 09:35:04

回答

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 e報告回購。

+0

我想知道爲什麼沒有人會在官方的haskell網站上修復「溫和的介紹」。 – 2017-01-04 00:27:59

2

根據Hoogle,標準庫中有no function named fromRealFrac 也許這是溫柔介紹的作者自己編寫的一個函數? 查看鏈接後,他們肯定會建議它在圖書館的某個地方......我也很困惑。