adventofcode/2022/day01.hs

15 lines
424 B
Haskell

import Data.List.Split (splitOn)
import Data.List (sort)
part1 :: [Integer] -> IO ()
part1 = (>>) (putStr "part 1: ") . print . maximum
part2 :: [Integer] -> IO ()
part2 = (>>) (putStr "part 2: ") . print . sum . take 3 . reverse . sort
rmap :: [a -> b] -> a -> [b]
rmap xs a = map (\f -> f a) xs
main :: IO ()
main = do
getContents >>= (sequence_ . rmap [part1, part2]) . map (sum . map read) . splitOn [""] . lines