advent-of-code/2023/haskell/app/Main.hs

48 lines
1.3 KiB
Haskell
Raw Normal View History

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
2023-12-06 20:33:19 +01:00
--import qualified Day05
2023-12-07 20:54:26 +01:00
--import qualified Day06
2023-12-08 20:45:46 +01:00
--import qualified Day07
2023-12-09 16:13:21 +01:00
--import qualified Day08
2023-12-12 19:38:48 +01:00
--import qualified Day09
2023-12-15 22:03:03 +01:00
--import qualified Day10
2023-12-16 16:41:33 +01:00
import qualified Day11
--import qualified Day15
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-12 19:38:48 +01:00
--run 01 Day01.parse Day01.solveA Day01.solveB
--run 02 Day02.parse Day02.solveA Day02.solveB
--run 03 Day03.parse Day03.solveA Day03.solveB
--run 04 Day04.parse Day04.solveA Day04.solveB
--run 05 Day05.parse Day05.solveA Day05.solveB
--run 06 Day06.parse Day06.solveA Day06.solveB
--run 07 Day07.parse Day07.solveA Day07.solveB
--run 08 Day08.parse Day08.solveA Day08.solveB
--run 09 Day09.parse Day09.solveA Day09.solveB
2023-12-15 22:03:03 +01:00
--run 10 Day10.parse Day10.solveA Day10.solveB
2023-12-16 16:41:33 +01:00
run 11 Day11.parse Day11.solveA Day11.solveA
--run 15 Day15.parse Day15.solveA Day15.solveB