Anonymous user
Poker hand analyser: Difference between revisions
m
→{{header|Haskell}}
Line 2,023:
| otherwise = ": High card"
where
cards = mapMaybe parseCard (words s)
sortedRank = sort $ rank <$> cards
rankCounts = sortBy (compare `on` snd) $ (,) <$> head <*> length <$> group sortedRank
uniqRanks = length rankCounts
ofKind n = any ((==n) . snd) rankCounts
straight = isSucc sortedRank || sortedRank == acesHigh
flush =
invalidHand = length (nub cards) /= 5
|