Haskell RealFloat
typeclassには、documentationに従って、引数がIEEE浮動小数点数の場合はTrueを返します(そうでない場合はFalse)。isIEEE
という関数があります。ここハスケルはいつもTrueと評価されていますか?
しかしはFloat
ためisIEEE
の実装です:
instance RealFloat Float where
...
isIEEE _ = True
そして、ここではDouble
の実装です:
instance RealFloat Double where
...
isIEEE _ = True
isIEEE
は常に無条件True
であれば、なぜそれを使うのか?なぜプレリュードの中にあるのですか?
GHCに付属しているだけで、 'RealFloat'インスタンスはIEEE754に従うためだけで、それはあなたにはない独自のインスタンスを定義することができないという意味ではありません。 – leftaroundabout
@leftaroundabout待って、実際に独自の浮動小数点型を定義できますか? –
@WanderNautaこれは、タイプをインスタンスとして持つことができる機能を提供できる限り、タイプメックのポイントです。 – Koterpillar