Clean bench

This commit is contained in:
ctsk
2023-08-30 13:39:18 +02:00
parent 69dbc4e001
commit eb35f60231
4 changed files with 10 additions and 16 deletions

View File

@@ -11,14 +11,14 @@ type Intermediate = [(Interval, Interval)]
makeInterval :: (Ord a) => a -> a -> (a, a)
makeInterval a b
| a > b = (b, a)
| otherwise = (a, b)
| a > b = (b, a)
| otherwise = (a, b)
parser :: Parser Intermediate
parser = someLines ((,) <$> interval <* char ',' <*> interval)
where
interval :: Parser Interval
interval = makeInterval <$> number <* char '-' <*> number
where
interval :: Parser Interval
interval = makeInterval <$> number <* char '-' <*> number
contains :: Interval -> Interval -> Bool
contains (a, b) (c, d) = a <= c && b >= d
@@ -29,9 +29,6 @@ overlap (a, b) (c, d) = not (b < c || a > d)
sym :: (a -> a -> Bool) -> (a -> a -> Bool)
sym f a b = f a b || f b a
pairFilter :: (a -> b -> Bool) -> [(a, b)] -> [(a, b)]
pairFilter f = filter (uncurry f)
part1 :: Intermediate -> Int
part1 = count (uncurry $ sym contains)

View File

@@ -71,7 +71,4 @@ part2 :: Intermediate -> Vector Char
part2 = uncurry ((fmap head .) . foldl (move CM9001))
day :: Day
day = parsecDay parser (definitive . part1, definitive . part2)
fast :: Day
fast = day
day = parsecDay parser (definitive . part1, definitive . part2)

View File

@@ -30,5 +30,5 @@ days =
, [D02.day]
, [D03.day]
, [D04.day]
, [D05.day, D05.fast]
, [D05.day]
]