无法读取自定义数据类型

时间:2016-09-05 06:34:18

标签: haskell typeclass deriving

data MyNum = One
           | Two
           | Three
           deriving (Show, Eq)

我只需使用构造函数MyNumOneTwo定义Three

  

*主> :t一个

     

One :: MyNum

但是当我向程序中添加x = read("One")::MyNum时,ghci会产生错误:

  

使用'read'

时没有(Read MyNum)的实例      

在表达式中:read(" One"):: MyNum

     

在'x'的等式中:x = read(" One"):: MyNum

为什么我不能read

1 个答案:

答案 0 :(得分:8)

您必须在Read

的定义中派生MyNum
data MyNum = One
           | Two
           | Three
           deriving (Show, Eq, Read)

x = read("One")::MyNum
  

*主> X