summary refs log tree commit diff
path: root/2/2.hs
diff options
context:
space:
mode:
authortzlil <tzlils@protonmail.com>2023-12-02 19:35:02 +0200
committertzlil <tzlils@protonmail.com>2023-12-02 19:35:02 +0200
commitcd31a8035a378cf58242444f9068f7d441ff42a7 (patch)
tree0fede5d839cb6c2755662513e2737f803c461dae /2/2.hs
parent261bfbaa66c0293585c0d8f7ccb6fe4423bcad4e (diff)
make pointfree again
Diffstat (limited to '2/2.hs')
-rw-r--r--2/2.hs7
1 files changed, 1 insertions, 6 deletions
diff --git a/2/2.hs b/2/2.hs
index 3d26a35..ba01542 100644
--- a/2/2.hs
+++ b/2/2.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 ",")
@@ -30,6 +27,4 @@ games = sepBy game newline
 solution :: Game -> Int
 solution = product . M.elems . M.unionsWith max . snd
 
-main = head <$> getArgs >>= \a -> do
-    r <- readFile a
-    print $ sum $ map solution $ either (error.show) id $ parse games a r
\ No newline at end of file
+main = liftM2 (>>=) readFile (((print . sum . map solution . either (error.show) id) .) . parse games) =<< head <$> getArgs
\ No newline at end of file