私は2つのInts n、xを受け入れ、floor(log n/log x)を計算する関数を持っています。ここでnとxはどちらも非常に限られているので、Intは私のために十分です。Haskellで関数 'floor'の型エラー
func :: Int -> Int -> Int
func n x = floor (log . fromIntegral n/(log . fromIntegral x))
が、ここでエラーがGHCiの中で来る:
No instance for (RealFrac (a -> b))
arising from a use of `floor' at p5_evenly_divide.hs:20:11-63
Possible fix: add an instance declaration for (RealFrac (a -> b))
In the expression:
floor (log . fromIntegral n/(log . fromIntegral x))
In the definition of `func':
func n x = floor (log . fromIntegral n/(log . fromIntegral x))
は、どのように私はこれを介して取得することができますか?
私はあなたが両方の問題を説明する方法と、それを解決する方法を好みます。それは本当に役に立ちます。 – Chuck
ありがとう、それは動作します。 –
私はRealFracで 'floor'を使うべきだというエラーメッセージがあると思っていたので、間違った方向に取り組んでいました。 –