Ошибка Haskell при создании списка понимания - PullRequest
0 голосов
/ 22 марта 2019

Я следую этому руководству , чтобы создать понимание списка.

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]]

Когда я создаю функцию упаковки, она всегда выдает

error: Data constructor not in scope: Suite :: Suite

1 Ответ

7 голосов
/ 22 марта 2019
pack :: [Card]
pack = [(Value,Suite) | Value <- [Two .. A], Suite <- [Hearts .. Clubs]]

Левая часть <- должна быть переменной (или шаблоном с переменными в нем).В Haskell они начинаются со строчной буквы.Попробуйте это:

pack :: [Card]
pack = [(value,suite) | value <- [Two .. A], suite <- [Hearts .. Clubs]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...