我試圖創建一個'人'類型,其中每個人都有一個性別和一個名字。爲什麼這種類型的聲明不起作用?
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'
我在做什麼錯在這裏?
只是一個隨機PS,如果你定義這個就像是一個布爾數據值,那麼它的可能性就會小得多,而且錯誤也會減少。例如,如果有人用(性別'Z')調用函數怎麼辦?我會建議如下:data Sex =女| |男性派生(...) – codebliss 2009-12-31 07:46:03
@codebliss,謝謝,我忘記了類型的'|'技巧。 (我是*真的* n00bish n00b。) – friedo 2009-12-31 07:52:30
它不是你問的問題,但你會更好地將Sex定義爲「data Sex = Male | Female」。 – 2010-01-03 20:10:34