day 1: rewrite parse
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
@@ -1,21 +1,23 @@
|
|||||||
module Main where
|
module Main where
|
||||||
|
|
||||||
import qualified AoC as A (count, extract)
|
import qualified AoC as A (count, extract)
|
||||||
|
import Control.Monad (void)
|
||||||
import Data.List (sort)
|
import Data.List (sort)
|
||||||
import Text.Parsec (digit, many1, newline, parse, space, try)
|
import Text.Parsec (digit, eof, many1, newline, parse, sepEndBy1, space, try, (<|>))
|
||||||
import Text.Parsec.String (Parser)
|
import Text.Parsec.String (Parser)
|
||||||
|
|
||||||
parseLists :: Parser ([Int], [Int])
|
parseLists :: Parser ([Int], [Int])
|
||||||
parseLists =
|
parseLists =
|
||||||
unzip
|
unzip
|
||||||
-- multiple lines
|
-- multiple lines
|
||||||
<$> many1
|
<$> sepEndBy1
|
||||||
( (,)
|
( (,)
|
||||||
-- first number
|
-- first number
|
||||||
<$> (read <$> many1 digit)
|
<$> (read <$> many1 digit)
|
||||||
-- second number
|
-- second number
|
||||||
<*> (many1 space *> (read <$> many1 digit) <* try newline)
|
<*> (many1 space *> (read <$> many1 digit))
|
||||||
)
|
)
|
||||||
|
newline
|
||||||
|
|
||||||
part1 :: [Int] -> [Int] -> Int
|
part1 :: [Int] -> [Int] -> Int
|
||||||
part1 xs ys = sum $ zipWith ((abs .) . (-)) xs ys
|
part1 xs ys = sum $ zipWith ((abs .) . (-)) xs ys
|
||||||
|
Reference in New Issue
Block a user