Advent of Code 2025

Add more days

+6
generate.py
···
+
# for i in range(1,25):
+
# f = open(f"src/Day{i}.hs", "w")
+
# f.write(f"module Day{i} where\n\npart1 :: String -> String\npart1 _ = \"Day {i} part 1\"\n\npart2 :: String -> String\npart2 _ = \"Day {i} part 2\"\n")
+
+
for i in range(1,13):
+
print(f"\"{i}\" -> do\n putStrLn $ \"Part 1: \" ++ Day{i}.part1 input\n putStrLn $ \"Part 2: \" ++ Day{i}.part2 input\n ",end='')
+2 -2
src/Day1.hs
···
module Day1 where
part1 :: String -> String
-
part1 input = "Day 1 part 1"
+
part1 _ = "Day 1 part 1"
part2 :: String -> String
-
part2 input = "Day 1 part 2"
+
part2 _ = "Day 1 part 2"
+7
src/Day10.hs
···
+
module Day10 where
+
+
part1 :: String -> String
+
part1 _ = "Day 10 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 10 part 2"
+7
src/Day11.hs
···
+
module Day11 where
+
+
part1 :: String -> String
+
part1 _ = "Day 11 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 11 part 2"
+7
src/Day12.hs
···
+
module Day12 where
+
+
part1 :: String -> String
+
part1 _ = "Day 12 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 12 part 2"
+7
src/Day2.hs
···
+
module Day2 where
+
+
part1 :: String -> String
+
part1 _ = "Day 2 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 2 part 2"
+7
src/Day3.hs
···
+
module Day3 where
+
+
part1 :: String -> String
+
part1 _ = "Day 3 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 3 part 2"
+7
src/Day4.hs
···
+
module Day4 where
+
+
part1 :: String -> String
+
part1 _ = "Day 4 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 4 part 2"
+7
src/Day5.hs
···
+
module Day5 where
+
+
part1 :: String -> String
+
part1 _ = "Day 5 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 5 part 2"
+7
src/Day6.hs
···
+
module Day6 where
+
+
part1 :: String -> String
+
part1 _ = "Day 6 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 6 part 2"
+7
src/Day7.hs
···
+
module Day7 where
+
+
part1 :: String -> String
+
part1 _ = "Day 7 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 7 part 2"
+7
src/Day8.hs
···
+
module Day8 where
+
+
part1 :: String -> String
+
part1 _ = "Day 8 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 8 part 2"
+7
src/Day9.hs
···
+
module Day9 where
+
+
part1 :: String -> String
+
part1 _ = "Day 9 part 1"
+
+
part2 :: String -> String
+
part2 _ = "Day 9 part 2"
+44
src/Main.hs
···
module Main where
import qualified Day1
+
import qualified Day2
+
import qualified Day3
+
import qualified Day4
+
import qualified Day5
+
import qualified Day6
+
import qualified Day7
+
import qualified Day8
+
import qualified Day9
+
import qualified Day10
+
import qualified Day11
+
import qualified Day12
import System.Environment (getArgs)
parseArgs :: [String] -> Maybe (String, String)
···
"1" -> do
putStrLn $ "Part 1: " ++ Day1.part1 input
putStrLn $ "Part 2: " ++ Day1.part2 input
+
"2" -> do
+
putStrLn $ "Part 1: " ++ Day2.part1 input
+
putStrLn $ "Part 2: " ++ Day2.part2 input
+
"3" -> do
+
putStrLn $ "Part 1: " ++ Day3.part1 input
+
putStrLn $ "Part 2: " ++ Day3.part2 input
+
"4" -> do
+
putStrLn $ "Part 1: " ++ Day4.part1 input
+
putStrLn $ "Part 2: " ++ Day4.part2 input
+
"5" -> do
+
putStrLn $ "Part 1: " ++ Day5.part1 input
+
putStrLn $ "Part 2: " ++ Day5.part2 input
+
"6" -> do
+
putStrLn $ "Part 1: " ++ Day6.part1 input
+
putStrLn $ "Part 2: " ++ Day6.part2 input
+
"7" -> do
+
putStrLn $ "Part 1: " ++ Day7.part1 input
+
putStrLn $ "Part 2: " ++ Day7.part2 input
+
"8" -> do
+
putStrLn $ "Part 1: " ++ Day8.part1 input
+
putStrLn $ "Part 2: " ++ Day8.part2 input
+
"9" -> do
+
putStrLn $ "Part 1: " ++ Day9.part1 input
+
putStrLn $ "Part 2: " ++ Day9.part2 input
+
"10" -> do
+
putStrLn $ "Part 1: " ++ Day10.part1 input
+
putStrLn $ "Part 2: " ++ Day10.part2 input
+
"11" -> do
+
putStrLn $ "Part 1: " ++ Day11.part1 input
+
putStrLn $ "Part 2: " ++ Day11.part2 input
+
"12" -> do
+
putStrLn $ "Part 1: " ++ Day12.part1 input
+
putStrLn $ "Part 2: " ++ Day12.part2 input
_ -> error "Invalid day"
Nothing -> error "Failed to parse args"