从Prelude.read获得"不解析"

Sp3*_*000 5 haskell

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

data Number
  = Num Int
  deriving (Read, Show)
Run Code Online (Sandbox Code Playgroud)

然后我试着read "1234" :: Number希望能给出类似的东西Num 1234,但我似乎得到了一个"Exception:Prelude.read:no parse".还有别的东西让我失踪吗?

gsp*_*spr 9

你得到的实例会给出read "Num 1234" = Num 1234.

这是一个预计,实例的行为Read,但如果你真的想要一个不同的行为,你就必须实现readNumber自己(您可以再利用Int的,虽然).

  • +1 - @ Sp3000你应该把它看作某种与`show`相反的东西 (5认同)