在我刚刚写完答案的时候,我遇到了一个有趣的问题:
data Gender = Male | Female
deriving (Eq, Show)
data Age = Baby | Child | PreTeen | Adult
deriving (Eq, Show, Ord)
data Clothing = Pants Gender Age
| Shirt Gender Age
| Skirt Age -- assumed to be Female
deriving (Show, Eq)
Run Code Online (Sandbox Code Playgroud)
假设我希望用记录语法编写最终数据类型:
data Clothing = Pants {gender :: Gender, age :: Age}
| Shirt {gender :: Gender, age :: Age}
| Skirt {age :: Age}
deriving (Show, Eq)
Run Code Online (Sandbox Code Playgroud)
问题是,我想gender $ Skirt foo总是评价 …