summaryrefslogtreecommitdiff
path: root/2025/ocaml/lib/application/d06p01.ml
diff options
context:
space:
mode:
authorDJ O'Leary <dijitol@proton.me>2026-06-26 18:04:09 +0200
committerDJ O'Leary <dijitol@proton.me>2026-06-26 18:04:09 +0200
commit6d8fb621d1e93b83786890d6d9cb6f0d8defa8ae (patch)
tree17c90d3984c114aa023600cc5bec6f6004b02243 /2025/ocaml/lib/application/d06p01.ml
parentad4ea5ca4bc9f7540ee1d6a4fa2d881709dc6459 (diff)
refactor!: invert repo directory structure
now is language first
Diffstat (limited to '2025/ocaml/lib/application/d06p01.ml')
-rw-r--r--2025/ocaml/lib/application/d06p01.ml50
1 files changed, 0 insertions, 50 deletions
diff --git a/2025/ocaml/lib/application/d06p01.ml b/2025/ocaml/lib/application/d06p01.ml
deleted file mode 100644
index 9425810..0000000
--- a/2025/ocaml/lib/application/d06p01.ml
+++ /dev/null
@@ -1,50 +0,0 @@
-let err_empty_input = "input is empty"
-
-let log_matrix matrix =
- let open Domain.Matrix in
- Logs.debug (fun m -> m "%s" (M.of_list matrix |> M.pp (fun elt -> elt)))
-
-let log_list lst =
- Logs.debug (fun m ->
- m "[%s]" (List.fold_left (fun acc i -> acc ^ i ^ "; ") " " lst) )
-
-type operation = Mult | Add
-
-let solve input () =
- if input = "" then Error err_empty_input
- else
- let input' = Parser.columns_of_string input in
- assert (input' <> []) ;
- log_matrix input' ;
- let nums =
- List.map (List.filter (fun i -> i <> "*" && i <> "+")) input'
- |> List.map
- @@ List.map (fun n ->
- Logs.debug (fun m -> m "peeking: %s" n) ;
- int_of_string n )
- and ops =
- List.map (List.filter (fun i -> i = "*" || i = "+")) input'
- |> List.concat
- |> List.map (fun op ->
- match op with
- | "*" ->
- Mult
- | "+" ->
- Add
- | _ ->
- failwith "case not covered" )
- in
- let answer =
- List.map2
- (fun op num_lst ->
- match op with
- | Add ->
- List.fold_left (fun acc i -> acc + i) 0 num_lst
- | Mult ->
- List.fold_left (fun acc i -> acc * i) 1 num_lst )
- ops nums
- |> fun lst ->
- log_list @@ List.map string_of_int lst ;
- lst |> List.fold_left ( + ) 0
- in
- Ok answer