diff options
Diffstat (limited to '2/1.hs')
-rw-r--r-- | 2/1.hs | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/2/1.hs b/2/1.hs index 1073b72..726f95c 100644 --- a/2/1.hs +++ b/2/1.hs @@ -8,7 +8,6 @@ import qualified Data.Map as M import Control.Monad data Color = Red | Green | Blue deriving (Show,Eq,Ord) -type Handful = (Color, Int) type Set = M.Map Color Int type Game = (Int, [Set]) @@ -16,10 +15,8 @@ red = string "red" *> pure Red green = string "green" *> pure Green blue = string "blue" *> pure Blue -color :: Parser Color color = red <|> green <|> blue -handful :: Parser Handful handful = liftM2 (flip (,)) (space *> (read <$> many1 digit)) (space *> color) set = M.fromList <$> (sepBy handful $ string ",") @@ -35,4 +32,4 @@ solution (i,m) = do guard $ M.findWithDefault 0 Blue m' <= 14 return i -main = head <$> getArgs >>= readFile >>= print . sum . catMaybes . map solution . either (error.show) id . parse games "" \ No newline at end of file +main = liftM2 (>>=) readFile (((print . sum . catMaybes . map solution . either (error.show) id) .) . parse games) =<< head <$> getArgs \ No newline at end of file |