我刚开始使用Haskell,我一直在尝试制作一个简单的Number数据类型,它有一个类似这样的Int:
data Number
= Num Int
deriving (Read, Show)
然后我试着做read "1234" :: Number
,希望它能给出类似Num 1234
的结果,但我似乎得到了一个"Exception:Prelude.read:no parse"。我还缺少什么吗?
派生的实例将给出read "Num 1234" = Num 1234
。
这是Read
实例所期望的行为,但如果您真的想要不同的行为,则必须自己为Number
实现read
(不过您可以重用Int
的)。