haskell: 2023 main
This commit is contained in:
parent
86f7d3e6da
commit
96e84e4199
|
@ -23,7 +23,6 @@ library
|
||||||
Day03
|
Day03
|
||||||
Day04
|
Day04
|
||||||
|
|
||||||
-- Modules included in this library but not exported.
|
|
||||||
-- other-modules:
|
-- other-modules:
|
||||||
|
|
||||||
-- LANGUAGE extensions used by modules in this package.
|
-- LANGUAGE extensions used by modules in this package.
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
module Main where
|
module Main where
|
||||||
|
|
||||||
|
import Data.Text (Text)
|
||||||
import Utils (readInput)
|
import Utils (readInput)
|
||||||
import qualified Day01
|
import qualified Day01
|
||||||
import qualified Day02
|
import qualified Day02
|
||||||
|
@ -7,43 +8,25 @@ import qualified Day03
|
||||||
import qualified Day04
|
import qualified Day04
|
||||||
|
|
||||||
|
|
||||||
day01 :: IO ()
|
run :: (Show b, Show c)
|
||||||
day01 = do
|
=> Int
|
||||||
input <- Day01.parse <$> readInput 1
|
-> (Text -> Either String a)
|
||||||
print . Day01.solveA $ input
|
-> (a -> b)
|
||||||
print . Day01.solveB $ input
|
-> (a -> c)
|
||||||
|
-> IO ()
|
||||||
day02 :: IO ()
|
run day parse solveA solveB = do
|
||||||
day02 = do
|
text <- readInput day
|
||||||
text <- readInput 2
|
case parse text of
|
||||||
case Day02.parse text of
|
|
||||||
Left err -> putStrLn err
|
Left err -> putStrLn err
|
||||||
Right xd -> do
|
Right re -> do
|
||||||
print . Day02.solveA $ xd
|
putStrLn $ "Day " <> show day
|
||||||
print . Day02.solveB $ xd
|
print . solveA $ re
|
||||||
|
print . solveB $ re
|
||||||
day03 :: IO ()
|
|
||||||
day03 = do
|
|
||||||
text <- readInput 3
|
|
||||||
case Day03.parse text of
|
|
||||||
Left err -> putStrLn err
|
|
||||||
Right xd -> do
|
|
||||||
print . Day03.solveA $ xd
|
|
||||||
print . Day03.solveB $ xd
|
|
||||||
|
|
||||||
day04 :: IO ()
|
|
||||||
day04 = do
|
|
||||||
text <- readInput 4
|
|
||||||
case Day04.parse text of
|
|
||||||
Left err -> putStrLn err
|
|
||||||
Right xd -> do
|
|
||||||
print . Day04.solveA $ xd
|
|
||||||
print . Day04.solveB $ xd
|
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
-- day01
|
run 1 Day01.parse Day01.solveA Day01.solveB
|
||||||
-- day02
|
run 2 Day02.parse Day02.solveA Day02.solveB
|
||||||
-- day03
|
run 3 Day03.parse Day03.solveA Day03.solveB
|
||||||
day04
|
run 4 Day04.parse Day04.solveA Day04.solveB
|
||||||
pure ()
|
pure ()
|
||||||
|
|
|
@ -7,8 +7,8 @@ import Data.Char (isDigit)
|
||||||
import Data.Maybe (mapMaybe, listToMaybe)
|
import Data.Maybe (mapMaybe, listToMaybe)
|
||||||
|
|
||||||
|
|
||||||
parse :: Text -> [Text]
|
parse :: Text -> Either String [Text]
|
||||||
parse = T.lines
|
parse = Right . T.lines
|
||||||
|
|
||||||
merge :: [Int] -> Int
|
merge :: [Int] -> Int
|
||||||
merge xs = 10 * head xs + last xs
|
merge xs = 10 * head xs + last xs
|
||||||
|
|
Loading…
Reference in a new issue