Haskell 有没有更好的方式来表达这种类型?
我创建了这个数据类型,其中有很多重复Haskell 有没有更好的方式来表达这种类型?,haskell,algebraic-data-types,Haskell,Algebraic Data Types,我创建了这个数据类型,其中有很多重复 data JobState = UnsanitizedData Handle | SanitizedData Handle | VerifiedData Handle | JobFail Handle 我不希望这些JobState中的任何一个都没有手柄。但是这种重复让我怀疑我没有正确地表达这一点。有更好的方法吗?一种方法是将其分解为一个状态值和一个包含句柄的包装器: dat
data JobState = UnsanitizedData Handle
| SanitizedData Handle
| VerifiedData Handle
| JobFail Handle
我不希望这些JobState中的任何一个都没有手柄。但是这种重复让我怀疑我没有正确地表达这一点。有更好的方法吗?一种方法是将其分解为一个状态值和一个包含句柄的包装器:
data JobState = UnsanitizedData | SanitizedData | VerifiedData | JobFail
deriving (Eq, Enum, Ord, Show, Read)
data Job = Job { jobState :: JobState, jobHandle :: Handle }
-- or: data Job = Job JobState Handle
就这样!这就是我想要的。等我同意的时候,我会接受的。