2013-03-11 3 views
8

fromRealFracの機能はどこにありますか? the gentle introによれば、関数が存在するはずで、グーグルグーグルの周りから、Preludeにあるはずです。しかし、ghciは範囲外であると不平を言います。fromRealFracはどこですか?

fromRealFracを定義することを意図した穏やかなイントロによると、当面はfromRational . toRationalを使用しています。

+1

私の推測では、この機能はHaskell 98以降に(再)移動されたと思います。 –

+1

これは、優しいイントロの誤植の可能性が高いです。 'realToFrac'が必要です。 – augustss

答えて

19

"fromRealFrac"として以前知られていた機能は、Haskell 98レポートで "realToFrac"と改名されました。それは

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

として知られているHaskell 98によって、我々は

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

しかし見つけるHaskell 1.4 Prelude

は、この変更は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 

最も近いIをコミット見つけることができましたthis番目にeレポートレポ。

+0

公式のhaskellのウェブサイトで "優しいイントロ"を修正しようとする人はいないのだろうか。 –

2

Hoogleによれば、標準ライブラリーにはno function named fromRealFracがある。 おそらく、優しいイントロの作者が自分自身で作った機能ですか? リンクを見て、彼らは確かにそれがどこかの図書館にあることを示唆している...私も混乱している。