2023-11-28 22:21:26 +01:00
|
|
|
module Main where
|
|
|
|
|
2023-12-04 23:55:27 +01:00
|
|
|
import Data.Text (Text)
|
2023-11-29 22:58:49 +01:00
|
|
|
import Utils (readInput)
|
2023-12-05 20:31:36 +01:00
|
|
|
--import qualified Day01
|
|
|
|
--import qualified Day02
|
|
|
|
--import qualified Day03
|
|
|
|
--import qualified Day04
|
|
|
|
import qualified Day05
|
2023-12-01 23:03:57 +01:00
|
|
|
|
2023-11-28 22:21:26 +01:00
|
|
|
|
2023-12-04 23:55:27 +01:00
|
|
|
run :: (Show b, Show c)
|
|
|
|
=> Int
|
|
|
|
-> (Text -> Either String a)
|
|
|
|
-> (a -> b)
|
|
|
|
-> (a -> c)
|
|
|
|
-> IO ()
|
|
|
|
run day parse solveA solveB = do
|
|
|
|
text <- readInput day
|
|
|
|
case parse text of
|
2023-12-04 23:07:37 +01:00
|
|
|
Left err -> putStrLn err
|
2023-12-04 23:55:27 +01:00
|
|
|
Right re -> do
|
|
|
|
putStrLn $ "Day " <> show day
|
|
|
|
print . solveA $ re
|
|
|
|
print . solveB $ re
|
2023-12-04 23:07:37 +01:00
|
|
|
|
2023-11-28 22:21:26 +01:00
|
|
|
main :: IO ()
|
|
|
|
main = do
|
2023-12-05 20:31:36 +01:00
|
|
|
--run 1 Day01.parse Day01.solveA Day01.solveB
|
|
|
|
--run 2 Day02.parse Day02.solveA Day02.solveB
|
|
|
|
--run 3 Day03.parse Day03.solveA Day03.solveB
|
|
|
|
--run 4 Day04.parse Day04.solveA Day04.solveB
|
|
|
|
run 5 Day05.parse Day05.solveA Day05.solveB
|
2023-12-03 19:34:55 +01:00
|
|
|
pure ()
|