Gus*_*rya -1 haskell functional-programming
我正在按照本指南创建列表推导。
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]]
Run Code Online (Sandbox Code Playgroud)
当我创建pack函数时,它总是抛出
error: Data constructor not in scope: Suite :: Suite
pack :: [Card]
pack = [(Value,Suite) | Value <- [Two .. A], Suite <- [Hearts .. Clubs]]
Run Code Online (Sandbox Code Playgroud)
的左侧<-应为变量(或带有变量的模式)。在Haskell中,这些字母以小写字母开头。尝试这个:
pack :: [Card]
pack = [(value,suite) | value <- [Two .. A], suite <- [Hearts .. Clubs]]
Run Code Online (Sandbox Code Playgroud)