data MyNum = One
| Two
| Three
deriving (Show, Eq)
我只需使用构造函数MyNum
,One
和Two
定义Three
。
*主> :t一个
One :: MyNum
但是当我向程序中添加x = read("One")::MyNum
时,ghci会产生错误:
使用'read'
时没有(Read MyNum)的实例在表达式中:read(" One"):: MyNum
在'x'的等式中:x = read(" One"):: MyNum
为什么我不能read
?
答案 0 :(得分:8)
您必须在Read
:
MyNum
data MyNum = One
| Two
| Three
deriving (Show, Eq, Read)
x = read("One")::MyNum
*主> X
一