Haskell'i öğreniyorum. 'B' tabanda 'n' çarpma tablosunu döndüren fonksiyon yarattım. Rakamlar "w" basamaklarına doldurulur. Son adım olarak, ben 'w' otomatik olarak hesaplamak istiyorum. Neden bu derleme değil?(Floating Int) için bir örnek yok
-- 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))
hatası:
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))
Sanırım ayrıca '(FromIntegral base') 'e ihtiyacınız olacak. –
@ Jason: Dan'in bu işlevi yerine getirmediği gibi, yapmayacaksın. – Chuck
Evet, nasıl kullanmak istediğinize bağlı. Ya tür imzayı değiştirmek için sorun yoksa ya da olmasa da Andy versiyonunu kullanıyorum gibi var. –