Aca*_*mia 5 string haskell overriding char show
我有一个问题:如何覆盖String或Char的show方法?谢谢.
由于人们似乎喜欢我的评论,这里作为答案:
如果要在现有类型上重新实现类型类,可以将它们包装在newtype-declared类型中.这允许您定义自己的实现,在运行时没有任何实际开销(因为newtype与原始类型同构,在运行时没有完成实际装箱).
这可能看起来像这样:
newtype MyChar = MyChar Char
instance Show MyChar where
show (MyChar c) = "head \"" ++ c : "\""
Run Code Online (Sandbox Code Playgroud)
您可以通过包装Chars 来使用它MyChar,如下所示:
print $ fmap MyChar "test"
Run Code Online (Sandbox Code Playgroud)
这将打印出来
[head "t",head "e",head "s",head "t"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1740 次 |
| 最近记录: |