我正在尝试创建一个“人”类型,每个人都有性别和名字。
data Sex = Sex Char deriving Show
male = Sex 'M'
female = Sex 'F'
data Name = Name [Char] deriving Show
data Person = Person {
Sex :: Sex,
Name :: Name
} deriving (Show)
当我尝试在ghci中加载时,我只是得到了无用的错误parse error on input 'Sex'
我在这里做错了什么?
答案 0 :(得分:10)
问题在于您在记录语法中使用大写。代码应如下所示:
data Person = Person { sex :: Sex, name :: Name }...
尝试一下,代码似乎至少可以编译。由于“性别”和“名称”不是类型(而“性别”和“名称”都是),你不能使第一个字母大写。