一张卡片有一个类型和一个颜色:
data CardType = Spades | Clubs | Diamonds | Hearts
data CardColor = Black | Red
cardColor :: CardType -> CardColor
cardColor card =
case card of Spades -> Black
Clubs -> Black
Diamonds -> Red
Hearts -> Red
type Card = (CardType, CardColor)
我想检查所有卡片是否具有相同的颜色:
allTheSameColor :: [Card] -> Bool
allTheSameColor cardList = ???
我想知道,如果不使用任何库函数,我将如何做到这一点filter
?但是它允许自己重新实现它,因为我希望能够在更深的功能层面上理解如何解决这个问题。