8

関数はどこにありfromRealFracますか? 穏やかなイントロによると、関数は存在するはずであり、少しグーグルで調べてみると、それはプレリュードにあるはずだと思いますが、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 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

私が見つけた最も近いコミット、レポート リポジトリにあるものです。

于 2013-03-11T09:58:00.383 に答える
5

この関数は GHC Prelude で呼び出さrealToFracているようです。

于 2013-03-11T07:35:27.633 に答える
2

Hoogleによると、標準ライブラリには名前が付けられた関数fromRealFracはありません。優しいイントロの作者が自作した機能なのかな?リンクを見た後、彼らは確かにそれがどこかの図書館にあることを示唆しています...私も混乱しています.

于 2013-03-11T04:01:06.320 に答える