2012-04-10 88 views
1

转换类型为char

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]。

在此先感谢。

回答

5

要打开val成一个字符串,它show

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

不要忘记上showDict类型的约束:

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

我做了,但现在问题是'没有实例(显示)' – 2012-04-10 09:06:50

+4

如果'val'不是“可显示”,为它添加类似的实例。 – 2012-04-10 10:38:27

1

实例(显示一个)=>展(字典一个)show = showDict

你必须告诉一个属于showable类的类,否则你不能在val上使用show。

相关问题