【发布时间】:2016-12-17 01:56:43
【问题描述】:
在 Haskell 中,是否可以动态获取类型中的值列表?一个具体的例子是通过组合每个等级和花色来生成一副完整的扑克牌,以创建一张牌列表:
data Rank = 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | J | Q | K | A
data Suit = Spades | Hearts | Diamonds | Clubs
data Card = Card Rank Suit
deck :: [Card]
deck = -- get list of ranks and suits to create a deck --
如果没有硬编码值,这将如何实现?
【问题讨论】:
-
是的,但这与“类型列表”无关。
-
... 或类型类。 (
J、Q、Spades、Hearts等不是类型。) -
正确的术语是什么?
-
@Shane
Spades是一个值(Suit类型)。它也是一个构造函数。 (另一个例子,Just "foo"是一个值(Maybe String类型),Just是一个构造函数。) -
@duplode 那么更好的问题是“获取类型中的值列表?”
标签: haskell