A卡都有一個類型和顏色:所有給定項具有財產
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
?但是我們可以自己重新實現它,因爲我希望能夠在深層次的功能層面上理解如何解決這個問題。
你可以看到'過濾器'和朋友是如何在Hackage上實現的;例如這裏是['filter'](http://hackage.haskell.org/package/base-4.6.0.1/docs/src/GHC-List.html#filter)。 –