adventofcode/2022/day01.hs

26 lines
625 B
Haskell

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