Advent of Code 2025

Initial Haskell template for Advent of Code

Dan Rubery fc15c5d0

+2
.dir-locals.el
···
+
((nil . ((default-directory . "~/repos/aoc2025/")
+
(compile-command . "./build.sh"))))
+3
.gitignore
···
+
aoc
+
build/
+
inputs/
+3
build.sh
···
+
#!/bin/bash
+
+
ghc -Wall -odir build/ -hidir build/ -o aoc src/*.hs
+7
src/Day01.hs
···
+
module Day01 where
+
+
part1 :: String -> String
+
part1 input = "Day 01 part 01"
+
+
part2 :: String -> String
+
part2 input = "Day 01 part 02"
+23
src/Main.hs
···
+
module Main where
+
+
import qualified Day01
+
import System.Environment (getArgs)
+
+
parseArgs :: [String] -> Maybe (String, String)
+
parseArgs [s] = Just (s, "inputs/day" ++ s ++ ".txt")
+
parseArgs [s,t] = Just (s, t)
+
parseArgs _ = Nothing
+
+
main :: IO ()
+
main = do
+
args <- getArgs
+
case parseArgs args of
+
Just (day,path) -> do
+
input <- readFile path
+
case day of
+
"01" -> do
+
putStrLn $ "Part 1: " ++ Day01.part1 input
+
putStrLn $ "Part 2: " ++ Day01.part2 input
+
_ -> error "Invalid day"
+
Nothing -> error "Failed to parse args"
+