more day09 golfing

p2 is just reverse p1 lol
This commit is contained in:
Gattix 2023-12-09 18:41:37 +01:00
parent c970abf345
commit 0e134abdaa

View File

@ -3,15 +3,12 @@ import Control.Arrow
main :: IO () main :: IO ()
main = do main = do
input <- parse <$> readFile "input" input <- parse <$> readFile "input"
print $ day09 input print $ (day09 &&& day09 . map reverse) input
parse :: String -> [[Int]] parse :: String -> [[Int]]
parse = map (map read . words) . lines parse = map (map read . words) . lines
day09 :: [[Int]] -> (Int, Int) day09 :: [[Int]] -> Int
day09 = day09 =
(sum *** sum) . sum .
unzip . map (sum . map last . takeWhile (not . null) . iterate (zipWith (-) =<< tail))
map
((sum . map last &&& foldr1 (-) . map head) .
takeWhile (not . null) . iterate (zipWith (-) =<< tail))