我正在按照本指南创建列表理解。
data Value = Two|Three|Four|Five|Six|Seven|Eight|Nine|Ten|J|Q|K|A
deriving (Eq, Ord, Enum)
data Suite = Hearts | Spades | Diamonds | Clubs
deriving (Eq, Ord, Enum)
type Card = (Value, Suite)
pack :: [Card]
pack = [(Value,Suite) | Value <- [Two .. A], Suite <- [Hearts .. Clubs]]
当我创建 pack 函数时,它总是抛出
error: Data constructor not in scope: Suite :: Suite
pack :: [Card]
pack = [(Value,Suite) | Value <- [Two .. A], Suite <- [Hearts .. Clubs]]
的左侧<-
应该是一个变量(或其中包含变量的模式)。在 Haskell 中,它们以小写字母开头。试试这个:
pack :: [Card]
pack = [(value,suite) | value <- [Two .. A], suite <- [Hearts .. Clubs]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句