Haskellを学んでいます。基数 'b' で 'n' までの乗算表を返す関数を作成しました。数値は「w」桁までパディングされます。最後のステップとして、「w」を自動的に計算したいと思います。なぜこれはコンパイルされないのですか?
-- Number of digits needed for the multiplication table n*n in base 'base'
nOfDg :: Int -> Int-> Int
nOfDg n base = 1 + floor ( logBase base (n*n))
エラー:
No instance for (Floating Int)
arising from a use of `logBase' at C:\haskel\dgnum.hs:4:24-38
Possible fix: add an instance declaration for (Floating Int)
In the first argument of `floor', namely `(logBase b (n * n))'
In the second argument of `(+)', namely `floor (logBase b (n * n))'
In the expression: 1 + floor (logBase b (n * n))