From c9a6741617eb28834674a5ef84daae4366ac4101 Mon Sep 17 00:00:00 2001 From: Brian Chu Date: Sat, 20 Aug 2022 10:19:53 -0700 Subject: set up solution skeletons, driver framework, and solution for day 1 --- bin/dune | 2 +- bin/main.ml | 28 +++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) (limited to 'bin') diff --git a/bin/dune b/bin/dune index c6fe6fc..40bcfe3 100644 --- a/bin/dune +++ b/bin/dune @@ -1,4 +1,4 @@ (executable (public_name AoC2018) (name main) - (libraries AoC2018)) + (libraries AoC2018 stdio)) diff --git a/bin/main.ml b/bin/main.ml index 7bf6048..d72fbe4 100644 --- a/bin/main.ml +++ b/bin/main.ml @@ -1 +1,27 @@ -let () = print_endline "Hello, World!" +open AoC2018 +open Stdio + +let user_prompt (prompt: string): int = + print_string prompt; + flush stdout; + match In_channel.input_line In_channel.stdin with + | None -> failwith "no input given!" + | Some line -> int_of_string line + +let load_file f = + let ic = open_in f in + let n = in_channel_length ic in + let s = Bytes.create n in + really_input ic s 0 n; + close_in ic; + (Bytes.unsafe_to_string s) + +let () = + let day = user_prompt "which day? " in + let part = user_prompt "which part? " in + match (day, part) with + | (1, 1) -> load_file "inputs/day1.txt" |> Day1.part_1 |> printf "%d\n" + | (1, 2) -> load_file "inputs/day1.txt" |> Day1.part_2 |> printf "%d\n" + | _ -> printf "invalid combination\n" + + -- cgit 1.4.1-2-gfad0