2017-03-25 5 views
1

浮動小数点型でのみ機能する関数(例:指数関数)を使用したいと思います。私の入力はNum:Integer、Float、Fractionalのいずれのタイプでもかまいません。Num値をHaskellの浮動小数値に変換するには?

どのようにしてすべてを浮動小数点に変換できますか?

numToFloating :: (Num a, Floating b) => a -> b 
... 

私はあなたがすることはできません

答えて

3

を開始するためには考えて、持っていません。 ComplexFloatinstance of Numあるので、以下では

numToFloating :: Complex Float -> Float 

有効専門です。私たちは虚数部分で何をすべきか?

だから何あなたが本当に言いたいことは、入力が必要なより少し強いことが判明した署名

:: (Real a, Floating b) => a -> b 

を与え、あらゆるRealタイプであるということです。 realToFracあらゆるFloatingタイプがすでにFractionalあるので、あなたは、必要なものを行います

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

はすでにあります。

関連する問題