From 402a27d38485107852e8128f20a443cc7a684c6d Mon Sep 17 00:00:00 2001 From: Neil Smith Date: Mon, 26 Dec 2022 10:04:13 +0000 Subject: [PATCH] Tidying up --- advent-of-code22.cabal | 3 +-- advent02/Main.hs | 16 ++++++++++++---- advent07/Main.hs | 1 - advent14/Main.hs | 1 - advent15/Main.hs | 6 ++---- advent25/Main.hs | 3 +-- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/advent-of-code22.cabal b/advent-of-code22.cabal index 3504e46..496c42c 100644 --- a/advent-of-code22.cabal +++ b/advent-of-code22.cabal @@ -135,7 +135,7 @@ executable advent06 executable advent07 import: common-extensions, build-directives main-is: advent07/Main.hs - build-depends: text, attoparsec, containers, path-tree, rosezipper + build-depends: text, attoparsec, containers, rosezipper executable advent08 import: common-extensions, build-directives @@ -233,4 +233,3 @@ executable advent24 executable advent25 import: common-extensions, build-directives main-is: advent25/Main.hs --- build-depends: split diff --git a/advent02/Main.hs b/advent02/Main.hs index 2315317..074157a 100644 --- a/advent02/Main.hs +++ b/advent02/Main.hs @@ -1,7 +1,7 @@ -- Writeup at https://work.njae.me.uk/2022/12/02/advent-of-code-2022-day-2/ import AoC -import Data.Text () +import Data.Text (Text) import qualified Data.Text.IO as TIO import Data.Attoparsec.Text hiding (Result) import Control.Applicative @@ -52,6 +52,13 @@ roundFromResult (ShapeResult shape result) = Round shape p2s -- Parse the input file +match1P :: Parser [Round] +match2P :: Parser [ShapeResult] +roundP :: Parser Round +shapeResultP :: Parser ShapeResult +p1ShapeP, p2ShapeP, aP, bP, cP, xP, yP, zP :: Parser Shape +resultP, xrP, yrP, zrP :: Parser Result + match1P = roundP `sepBy` endOfLine roundP = Round <$> p1ShapeP <*> (" " *> p2ShapeP) @@ -73,13 +80,14 @@ xrP = Loss <$ "X" yrP = Draw <$ "Y" zrP = Win <$ "Z" --- successfulParse :: Text -> (Integer, [Maybe Integer]) +successfulParse1 :: Text -> [Round] successfulParse1 input = case parseOnly match1P input of Left _err -> [] -- TIO.putStr $ T.pack $ parseErrorPretty err - Right match -> match + Right matches -> matches +successfulParse2 :: Text -> [ShapeResult] successfulParse2 input = case parseOnly match2P input of Left _err -> [] -- TIO.putStr $ T.pack $ parseErrorPretty err - Right match -> match + Right matches -> matches diff --git a/advent07/Main.hs b/advent07/Main.hs index dcc076c..077b35b 100644 --- a/advent07/Main.hs +++ b/advent07/Main.hs @@ -10,7 +10,6 @@ import Data.Maybe import Data.Tree import Data.Tree.Zipper hiding (tree) import qualified Data.Map.Strict as M --- import Data.Map.Strict ((!), (!?)) import Data.List (foldl', sort) data ParsedObject = CD String diff --git a/advent14/Main.hs b/advent14/Main.hs index 0ded02b..924b413 100644 --- a/advent14/Main.hs +++ b/advent14/Main.hs @@ -4,7 +4,6 @@ import AoC import Data.Text (Text) import qualified Data.Text.IO as TIO import Data.Attoparsec.Text hiding (take, D) -import Control.Applicative import Data.List import Data.Ix import Data.Maybe diff --git a/advent15/Main.hs b/advent15/Main.hs index 9ed5d86..96f3213 100644 --- a/advent15/Main.hs +++ b/advent15/Main.hs @@ -4,12 +4,9 @@ import AoC import Data.Text (Text) import qualified Data.Text.IO as TIO import Data.Attoparsec.Text hiding (take, D) -import Control.Applicative -import Data.List import Data.Ix import qualified Data.Set as S import Linear hiding (Trace, trace, distance) -import Control.Lens type Position = V2 Int @@ -22,7 +19,8 @@ instance Semigroup Region where r1 <> r2 = Region (\p -> getRegion r1 p || getRegion r2 p) instance Monoid Region where - mempty = Region (\p -> False) + -- mempty = Region (\p -> False) + mempty = Region (const False) main :: IO () main = diff --git a/advent25/Main.hs b/advent25/Main.hs index 4e6cf87..28c33f7 100644 --- a/advent25/Main.hs +++ b/advent25/Main.hs @@ -10,7 +10,6 @@ main = numStrs <- readFile dataFileName let fuels = fmap readSnafu $ lines numStrs putStrLn $ showSnafu $ sum fuels - -- print $ part1 fuels readSnafu :: String -> Int readSnafu cs = foldl' go 0 cs @@ -36,7 +35,7 @@ packSnafu :: [Int] -> String packSnafu digits | carry == 0 = shown | otherwise = (snafuRep carry) : shown - where (carry, shown) = foldl' packSnafuDigit (0, "") digits + where (carry, shown) = foldl' packSnafuDigit (0, "") packSnafuDigit :: (Int, String) -> Int -> (Int, String) packSnafuDigit (carry, acc) d -- 2.34.1