Consistently use separator parsing combinators in infix form

This commit is contained in:
George Thomas 2025-12-08 23:44:43 +00:00
parent 832b85fb7b
commit ea64a5af3e
5 changed files with 6 additions and 6 deletions

View File

@ -8,7 +8,7 @@ puzzle :: Puzzle
puzzle = puzzle =
Puzzle Puzzle
{ number = 1 { number = 1
, parser = const $ flip sepEndBy newline $ (,) <$> ((char 'L' $> L) <|> (char 'R' $> R)) <*> (Inc <$> decimal) , parser = const $ ((,) <$> ((char 'L' $> L) <|> (char 'R' $> R)) <*> (Inc <$> decimal)) `sepEndBy` newline
, parts = , parts =
[ TL.show [ TL.show
. sum . sum

View File

@ -9,7 +9,7 @@ puzzle :: Puzzle
puzzle = puzzle =
Puzzle Puzzle
{ number = 2 { number = 2
, parser = const $ (<* newline) $ flip sepBy (char ',') $ (,) <$> (decimal <* char '-') <*> decimal , parser = const $ (<* newline) $ ((,) <$> (decimal <* char '-') <*> decimal) `sepBy` (char ',')
, parts = , parts =
[ TL.show [ TL.show
. sum . sum

View File

@ -9,7 +9,7 @@ puzzle :: Puzzle
puzzle = puzzle =
Puzzle Puzzle
{ number = 3 { number = 3
, parser = const $ flip sepEndBy newline $ Bank <$> some1 digit , parser = const $ (Bank <$> some1 digit) `sepEndBy` newline
, parts = , parts =
[ TL.show [ TL.show
. sum . sum

View File

@ -12,7 +12,7 @@ puzzle :: Puzzle
puzzle = puzzle =
Puzzle Puzzle
{ number = 4 { number = 4
, parser = const $ flip sepEndBy newline $ some $ asum $ enumerate <&> \t -> char (inToChar t) $> t , parser = const $ (some $ asum $ enumerate <&> \t -> char (inToChar t) $> t) `sepEndBy` newline
, parts = , parts =
[ TL.show [ TL.show
. (\g -> countRolls g - countRolls (removeAccessibleRolls $ findAccessible g)) . (\g -> countRolls g - countRolls (removeAccessibleRolls $ findAccessible g))

View File

@ -9,9 +9,9 @@ puzzle =
Puzzle Puzzle
{ number = 5 { number = 5
, parser = const do , parser = const do
ranges <- flip sepEndBy newline $ Range <$> decimal <* single '-' <*> decimal ranges <- (Range <$> decimal <* single '-' <*> decimal) `sepEndBy` newline
void newline void newline
vals <- sepEndBy decimal newline vals <- decimal `sepEndBy` newline
pure (ranges, vals) pure (ranges, vals)
, parts = , parts =
[ \(ranges, vals) -> [ \(ranges, vals) ->