gpt4 book ai didi

string - 重写 Haskell 中 String/Char 的 show 方法

转载 作者:行者123 更新时间:2023-12-02 07:12:18 26 4
gpt4 key购买 nike

我有一个问题:如何重写 String 或 Char 的 show 方法?谢谢。

最佳答案

由于人们似乎喜欢我的评论,因此将其作为答案:

如果您想在现有类型上重新实现类型类,可以将它们包装在 newtype 中。 -声明类型。这允许您定义自己的实现,而无需在运行时产生任何实际开销(因为 newtype 与原始类型同构,因此在运行时没有实际装箱)。

这可能看起来像这样:

newtype MyChar = MyChar Char

instance Show MyChar where
show (MyChar c) = "head \"" ++ c : "\""

您可以通过用 MyChar 包装 Char 来使用它,如下所示:

print $ fmap MyChar "test"

这将打印出来

[head "t",head "e",head "s",head "t"]

关于string - 重写 Haskell 中 String/Char 的 show 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8192118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com