从Prelude.read获得“不解析”

时间:2014-09-13 11:13:15

标签: haskell

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

data Number
  = Num Int
  deriving (Read, Show)

然后我试图做read "1234" :: Number希望能提供类似Num 1234的东西,但我似乎得到了一个“Exception:Prelude.read:no parse”。还有其他我缺少的东西吗?

1 个答案:

答案 0 :(得分:9)

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

这是Read实例所期望的行为,但如果您真的想要不同的行为,则必须自己为read实施Number(您可以尽管可以重复使用Int