[ create a new paste ] login | about

Link: http://codepad.org/y3cP6hFs    [ raw code | output | fork ]

johannes - Haskell, pasted on Feb 4:
module Main where

data Suit = Hearts | Diamonds | Clubs | Spades
    deriving (Show)

data Rank = Ace | Pip Int | Jack | Queen | King 
    deriving (Show)

type Card = (Suit, Rank)

deck :: [Card]
deck = do
    suit <- [Hearts, Diamonds, Clubs, Spades]
    rank <- Ace : [Pip n | n <- [2..10]] ++ [Jack, Queen, King]
    return (suit, rank)

main :: IO ()
main = mapM_ prettyPrint deck

prettyPrint :: Card -> IO ()
prettyPrint (s, r) = 
    let a = case r of
              Pip n -> show n
              _     -> show r
    in print $ a ++ " of " ++ show s


Output:
"Ace of Hearts"
"2 of Hearts"
"3 of Hearts"
"4 of Hearts"
"5 of Hearts"
"6 of Hearts"
"7 of Hearts"
"8 of Hearts"
"9 of Hearts"
"10 of Hearts"
"Jack of Hearts"
"Queen of Hearts"
"King of Hearts"
"Ace of Diamonds"
"2 of Diamonds"
"3 of Diamonds"
"4 of Diamonds"
"5 of Diamonds"
"6 of Diamonds"
"7 of Diamonds"
"8 of Diamonds"
"9 of Diamonds"
"10 of Diamonds"
"Jack of Diamonds"
"Queen of Diamonds"
"King of Diamonds"
"Ace of Clubs"
"2 of Clubs"
"3 of Clubs"
"4 of Clubs"
"5 of Clubs"
"6 of Clubs"
"7 of Clubs"
"8 of Clubs"
"9 of Clubs"
"10 of Clubs"
"Jack of Clubs"
"Queen of Clubs"
"King of Clubs"
"Ace of Spades"
"2 of Spades"
"3 of Spades"
"4 of Spades"
"5 of Spades"
"6 of Spades"
"7 of Spades"
"8 of Spades"
"9 of Spades"
"10 of Spades"
"Jack of Spades"
"Queen of Spades"
"King of Spades"


Create a new paste based on this one


Comments: