summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDJ O'Leary <dijitol@proton.me>2025-12-01 22:52:12 +0100
committerDJ O'Leary <dijitol@proton.me>2025-12-01 22:52:12 +0100
commitca7631ff2fdc6d783f1ae8043de95dcd1b6b7d08 (patch)
treec92542fac87894f6ab8b8540bb7932fc0c5aa910
parentcdbf4be6fa793ca1286604bdc2a1bb5c9e6a197a (diff)
feat(file): implement file reader
-rw-r--r--2025/ocaml/lib/infrastructure/file_reader.ml4
-rw-r--r--2025/ocaml/lib/infrastructure/file_reader.mli3
-rw-r--r--2025/ocaml/lib/presentation/cli.ml16
3 files changed, 11 insertions, 12 deletions
diff --git a/2025/ocaml/lib/infrastructure/file_reader.ml b/2025/ocaml/lib/infrastructure/file_reader.ml
new file mode 100644
index 0000000..7a80c0b
--- /dev/null
+++ b/2025/ocaml/lib/infrastructure/file_reader.ml
@@ -0,0 +1,4 @@
+let read_file filename =
+ let chan = In_channel.open_text filename in
+ let content = In_channel.input_all chan in
+ In_channel.close chan ; content
diff --git a/2025/ocaml/lib/infrastructure/file_reader.mli b/2025/ocaml/lib/infrastructure/file_reader.mli
new file mode 100644
index 0000000..bb40577
--- /dev/null
+++ b/2025/ocaml/lib/infrastructure/file_reader.mli
@@ -0,0 +1,3 @@
+val read_file : string -> string
+(** [read_file filename] is the contents of [filename] as a string.
+ The empty string is returned if [filename] does not exist. *)
diff --git a/2025/ocaml/lib/presentation/cli.ml b/2025/ocaml/lib/presentation/cli.ml
index 6344d07..fba98ae 100644
--- a/2025/ocaml/lib/presentation/cli.ml
+++ b/2025/ocaml/lib/presentation/cli.ml
@@ -1,17 +1,9 @@
-let day_1_example = {|L68
-L30
-R48
-L5
-R60
-L55
-L1
-L99
-R14
-L82|}
-
let run_day = function
| 1 ->
- let answer = Application.Day_1.solve day_1_example () in
+ let content =
+ Infrastructure.File_reader.read_file "../_input/day_01.txt"
+ in
+ let answer = Application.D01p01.solve content () in
Logs.app (fun m -> m "%d" answer) ;
0
| _ ->