Haskell 语法举例
Haskell syntax for instance
我正在尝试使一对成为 Printable
的实例,但我无法找出正确的语法。
我的可打印是这样的:
class Printable a where
toString :: a -> [Char]
instance Printable Bool where
toString True = "true"
toString False = "false"
instance Printable () where
toString () = "unit type"
我的配对实例是这样的:
instance Printable ( a, b ) where
toString (a,b) = "(" ++ toString a ++ ","++ toString b ++ ")"
编译后,它给了我一个 No instance for (Printable a) arising from a use of ‘toString’
。
我做错了什么?
您需要 a
和 b
成为 Printable
的实例:
instance (Printable a, Printable b) => Printable ( a, b ) where
toString (a,b) = "(" ++ toString a ++ ","++ toString b ++ ")"
我正在尝试使一对成为 Printable
的实例,但我无法找出正确的语法。
我的可打印是这样的:
class Printable a where
toString :: a -> [Char]
instance Printable Bool where
toString True = "true"
toString False = "false"
instance Printable () where
toString () = "unit type"
我的配对实例是这样的:
instance Printable ( a, b ) where
toString (a,b) = "(" ++ toString a ++ ","++ toString b ++ ")"
编译后,它给了我一个 No instance for (Printable a) arising from a use of ‘toString’
。
我做错了什么?
您需要 a
和 b
成为 Printable
的实例:
instance (Printable a, Printable b) => Printable ( a, b ) where
toString (a,b) = "(" ++ toString a ++ ","++ toString b ++ ")"