你有什么建议:
data Direction = Left | Right
type Direction = Bool
newtype Direction = Direction Bool
然后我正在制作:
data Move = WalkRight Bool | Jump
或者
data Move = Walk Direction | Jump
取决于前面的答案。我有一个类型的功能Char -> Maybe Move
:
charToAction 'q' = Just $ WalkRight False
charToAction 'd' = Just $ WalkRight True
charToAction 'z' = Just Jump
charToAction _ = Nothing
我应该将我的类型更改Move
为:
data Move = Stationary | WalkRight Bool | Jump
? 该功能将变为:
charToAction 'q' = WalkRight False
charToAction 'd' = WalkRight True
charToAction 'z' = Jump
charToAction _ = Stationary
我想知道这是因为列表不需要Maybe:
data [a] = [] | a : [a]
或者有没有办法Maybe
让它变得更干净?