diff --git a/src/Day3.hs b/src/Day3.hs index 6f75868..9b384e5 100644 --- a/src/Day3.hs +++ b/src/Day3.hs @@ -4,12 +4,6 @@ import Data.Maybe (mapMaybe) import Text.Read (readMaybe) import Text.Regex.TDFA -data ProgramState = Enabled | Disabled - -data Program = Program ProgramState Int - -data Instruction = Do | Dont | Mul Int Int - partOne :: String -> Int partOne text = programValue $ foldl runInstruction initProgram $ parseInstructions matches where @@ -20,6 +14,14 @@ partTwo text = programValue $ foldl runInstruction initProgram $ parseInstructio where matches = getAllTextMatches (text =~ "do\\(\\)|don't\\(\\)|mul\\([0-9]{1,3},[0-9]{1,3}\\)") +-- Program + +data ProgramState = Enabled | Disabled + +data Program = Program ProgramState Int + +data Instruction = Do | Dont | Mul Int Int + initProgram :: Program initProgram = Program Enabled 0