将类型a转换为char

时间:2012-04-10 08:40:25

标签: haskell

我有

data Dictionary a = Empty
                  | Branch (a, Bool, Dictionary a) (Dictionary a)
                  deriving (Ord, Eq)

instance Show (Dictionary a) where show = showDict

showDict (Branch (val, e, dict) dict2) = "My dict is : " ++ val 

我知道这绝对是错的,但我找不到如何写这个。在showDict中,函数类型的val是一个但是期望的类型是[Char]。

提前致谢。

2 个答案:

答案 0 :(得分:5)

要将val转换为字符串,show

showDict (Branch (val, e, dict) dict2) = "My dict is : " ++ show val

不要忘记showDict上的类型限制:

instance Show a => Show (Dictionary a) where show = showDict

答案 1 :(得分:1)

实例(显示a)=>显示(字典a)show = showDict

你必须告诉它属于可显示的类型类,否则你不能在val上使用show。