在Haskell中匹配扑克牌的套装和排名

War*_*ive 2 haskell types

我需要一些Haskell函数的实现方面的帮助,该函数应该进行扑克牌匹配 - 即"黑桃王牌","钻石2","杰克之心".请注意,"s"的复数不能是Suit中构造函数名称的一部分.

参考:http://en.wikipedia.org/wiki/Standard_52-card_deck#Rank_and_color

到目前为止,这是我的代码:

data Suit = Club | Diamond | Heart | Spade
    deriving (Show, Ord)

data Rank = Ace | Zwei | Drei | Vier | Fuenf
| Sechs | Sieben | Acht | Neun | Zehn 
| Jack | Queen | King 
    deriving (Show, Enum, Read, Eq, Ord)

data Card = Card {rank :: Rank,
                suit :: Suit}
     deriving (Show, Read, Ord)
Run Code Online (Sandbox Code Playgroud)

所需的函数应为"match :: Card - > String"类型,生成类似"Ace of Diamond +"s""的消息

dav*_*420 5

match c = show (rank c) ++ " of " ++ show (suit c) ++ "s"
Run Code Online (Sandbox Code Playgroud)