From b8b62497076b8de5bf80e4dc1d2c5842737ed253 Mon Sep 17 00:00:00 2001 From: Amneesh Singh Date: Sun, 17 Dec 2023 17:31:32 +0530 Subject: [PATCH] day 9 Signed-off-by: Amneesh Singh --- day09.hs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 day09.hs diff --git a/day09.hs b/day09.hs new file mode 100644 index 0000000..0a7948d --- /dev/null +++ b/day09.hs @@ -0,0 +1,22 @@ +import Data.Either (rights) +import Data.Map qualified as M +import Data.Text qualified as T +import Data.Text.Read qualified as TR +import Lib (readFile', tRead) +import Text.Parsec + +main :: IO () +main = do + input <- map (map tRead . T.words) . T.lines <$> readFile' "day09.in" + + putStr "Q1: " + print . sum $ map (sum . map last . extrap) input + + putStr "Q2: " + print . sum $ map (sum . map last . extrap . reverse) input + +extrap :: [Int] -> [[Int]] +extrap xs = take (length xs) $ iterate first' xs + where + first' :: [Int] -> [Int] + first' xs = zipWith (-) (tail xs) xs