15 lines
424 B
Haskell
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 |