Haskell配对两张牌

时间:2014-09-01 07:36:11

标签: list haskell

目前我有卡片列表,现在我想在另一个列表中显示所有可能的卡片对。 例如:[(Card Club R2, Card Heart R3), (Card Club R2, Card Heart R4), (Card Club R2, Card Heart R5), (Card Club R2, Card Heart R6).........]。 总结果可能是1326个不同的对

1 个答案:

答案 0 :(得分:2)

只做

[ (c1, c2) | c1 <- allCards, c2 <- allCards, c1 /= c2 ]

但如上所述,这将返回2652对。

要将此值重写为1326对,要么按照Zeta的建议,要么将Ord添加到Card

[ (c1, c2) | c1 <- allCards, c2 <- allCards, c1 < c2 ]