![](/img/trans.png)
[英]Why does a Haskell type "deriving Integral" need to be "deriving Enum"?
[英]Haskell. Why does read function does not work with custom data type though I used deriving?
读取 function 无法与自定义数据类型一起正常工作。
data TwoInts = Int Int
deriving (Read, Show)
conv :: String -> TwoInts
conv s = read s
当我用 ghci ghci conv.hs
它加载正确,但是当我调用它conv "15 14"
我得到以下错误:
*** Exception: Prelude.read: no parse
如建议的那样,您的数据类型:
data TwoInts = Int Int
deriving (Read, Show)
描述了一个名为Int
的构造函数,它接受类型Int
。 如果您要使用记录,也许这更清楚:
data TwoInts = Int { int :: Int}
deriving (Read, Show)
评论中建议的解决方案是将您的构造函数命名为其他名称,例如,
data TwoInts = TwoInts Int Int
deriving (Read, Show)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.