This commit is contained in:
George Thomas 2025-12-02 11:15:49 +00:00
parent 3601933bd0
commit bd4d350e76

View File

@ -55,15 +55,13 @@ puzzle1 =
{ number = 1 { number = 1
, parser = flip sepEndBy newline $ (,) <$> ((char 'L' $> L) <|> (char 'R' $> R)) <*> (Inc <$> Lex.decimal) , parser = flip sepEndBy newline $ (,) <$> ((char 'L' $> L) <|> (char 'R' $> R)) <*> (Inc <$> Lex.decimal)
, parts = , parts =
[ [ T.show
T.show
. sum . sum
. flip evalState 50 . flip evalState 50
. traverse \(d, i) -> state \p -> . traverse \(d, i) -> state \p ->
let (_, p') = step i d p let (_, p') = step i d p
in (Count if p' == 0 then 1 else 0, p') in (Count if p' == 0 then 1 else 0, p')
, , T.show
T.show
. sum . sum
. flip evalState 50 . flip evalState 50
. traverse \(d, i) -> state \p -> . traverse \(d, i) -> state \p ->
@ -102,8 +100,7 @@ puzzle2 =
{ number = 2 { number = 2
, parser = (<* newline) $ flip sepBy (char ',') $ (,) <$> (Lex.decimal <* char '-') <*> Lex.decimal , parser = (<* newline) $ flip sepBy (char ',') $ (,) <$> (Lex.decimal <* char '-') <*> Lex.decimal
, parts = , parts =
[ [ T.show
T.show
. sum . sum
. concatMap . concatMap
(mapMaybe (\n -> guard (isRepetition n) $> n) . uncurry enumFromTo) (mapMaybe (\n -> guard (isRepetition n) $> n) . uncurry enumFromTo)