X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=advent07%2FMainWithCase.hs;h=bd0aa85906dab170f5235500673f0ca25d3786f7;hb=a7b02636b8045a73a4dff090c1b932cfa1afd9bd;hp=36b4cd86a5178b4db55be5da2de60862907cc016;hpb=3e6691d64d99bf6a3c5ebbf10372d1ea4b864c9e;p=advent-of-code-23.git diff --git a/advent07/MainWithCase.hs b/advent07/MainWithCase.hs index 36b4cd8..bd0aa85 100644 --- a/advent07/MainWithCase.hs +++ b/advent07/MainWithCase.hs @@ -40,10 +40,7 @@ enJoker (Hand cards bid) = Hand jCards bid where jCards = replace Jack Joker cards replace :: Eq a => a -> a -> [a] -> [a] -replace _ _ [] = [] -replace f t (x:xs) - | x == f = t : replace f t xs - | otherwise = x : replace f t xs +replace f t = fmap (\x -> if x == f then t else x) classify :: Hand -> ClassifiedHand classify (Hand cards bid) = @@ -74,7 +71,7 @@ handP :: Parser Hand cardP :: Parser Card handsP = handP `sepBy` endOfLine -handP = Hand <$> ((many1 cardP) <* space) <*> decimal +handP = Hand <$> many1 cardP <* space <*> decimal cardP = (Two <$ "2") <|> (Three <$ "3") <|> (Four <$ "4") <|> (Five <$ "5") <|> (Six <$ "6") <|> (Seven <$ "7") <|>