【问题标题】:Getting "no parse" from Prelude.read从 Prelude.read 获取“不解析”
【发布时间】:2014-09-13 19:15:23
【问题描述】:

我刚开始使用 Haskell,我一直在尝试制作一个简单的 Number 数据类型,它有一个像这样的 Int:

data Number
  = Num Int
  deriving (Read, Show)

然后我尝试执行read "1234" :: Number,希望这会给出类似Num 1234 的结果,但我似乎得到了一个“异常:Prelude.read:没有解析”。我还有什么遗漏的吗?

【问题讨论】:

    标签: haskell


    【解决方案1】:

    您派生的实例将给出read "Num 1234" = Num 1234

    这是 Read 实例所期望的行为,但如果你真的想要不同的行为,你必须自己为 Number 实现 read(你可以重复使用 Int 的,不过)。

    【讨论】:

    • +1 - @Sp3000 你应该把它看作是show的某种逆向
    • 谢谢大家,这更有意义
    猜你喜欢
    • 2017-01-18
    • 1970-01-01
    • 2021-12-21
    • 2015-11-08
    • 2018-08-28
    • 1970-01-01
    • 2015-04-18
    • 2012-08-22
    • 2015-01-13
    相关资源
    最近更新 更多