我有
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]。
提前致谢。
答案 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。