From 38f3a717b0f8095fb05b9be0bebd158474eb7618 Mon Sep 17 00:00:00 2001 From: Akshay Date: Tue, 15 Dec 2020 19:21:04 +0530 Subject: add day15 --- execs/Day14.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'execs/Day14.hs') diff --git a/execs/Day14.hs b/execs/Day14.hs index d82424a..7f4368a 100644 --- a/execs/Day14.hs +++ b/execs/Day14.hs @@ -5,6 +5,7 @@ import Text.ParserCombinators.Parsec import Text.Parsec.Char import Data.Either import Data.Char +import Data.Bifunctor (bimap) import Data.Strings import Numeric (showIntAtBase, readInt) import Data.Map (Map) @@ -15,11 +16,11 @@ data Stmt = Mask String | Mem Int Int deriving Show parseMask :: Parser Stmt parseMask = string "mask = " >> Mask <$> many anyChar +parseNumber :: Parser Int +parseNumber = read <$> many1 digit + parseMem :: Parser Stmt -parseMem = do - one <- string "mem[" >> many1 digit - two <- string "] = " >> many1 digit - return $ Mem (read one) (read two) +parseMem = Mem <$ string "mem[" <*> parseNumber <* string "] = " <*> parseNumber parseLine :: Parser Stmt parseLine = try parseMask <|> parseMem -- cgit v1.2.3