open Solutions exception NotImplemented of string let args = System.Environment.GetCommandLineArgs() assert (Array.length args = 3) let day, part = int args[1], int args[2] match (day, part) with | (1, 1) -> Day1.part1 () |> printf "%A\n" | (1, 2) -> Day1.part2 () |> printf "%A\n" | (2, 1) -> Day2.part1 () |> printf "%A\n" | (2, 2) -> Day2.part2 () |> printf "%A\n" | (3, 1) -> Day3.part1 () |> printf "%A\n" | (3, 2) -> Day3.part2 () |> printf "%A\n" | (4, 1) -> Day4.part1 () |> printf "%A\n" | (4, 2) -> Day4.part2 () |> printf "%A\n" | (5, 1) -> Day5.part1 () |> printf "%A\n" | (5, 2) -> Day5.part2 () |> printf "%A\n" | (x, y) when (1 <= x && x <= 25) && (y = 1 || y = 2) -> raise (NotImplemented("not implemented yet")) | _ -> raise (NotImplemented("invalid values"))