【发布时间】:2010-07-25 09:32:33
【问题描述】:
class Visible a where
toString :: a -> String
size :: a -> Int
intToString :: (Integral t) => t -> String
intToString 0 = "0"
intToString 1 = "1"
intToString 2 = "2"
intToString 3 = "3"
intToString 4 = "4"
intToString 5 = "5"
intToString 6 = "6"
intToString 7 = "7"
intToString 8 = "8"
intToString 9 = "9"
intToString n
| ((div n 10) == 0) = (intToString (mod n 10))
| otherwise = (intToString (div n 10)) ++ (intToString (mod n 10))
现在
instance Visible Int where
toString = intToString
size n = length (toString n)
如果我输入类似 (toString 55) 之类的内容,则会在提示符处给我一个关于不明确类型变量的错误
但是
instance Visible Integer where
toString = intToString
size n = length (toString n)
没有。
什么给了?
【问题讨论】:
-
仅供参考,这是您的 intToString 的替代定义:
intToString = show
标签: haskell