ocaml: phase 5.1 memo_fib.ml baseline (16/16 pass)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 23s

Memoized fibonacci using Hashtbl.find_opt + Hashtbl.add.
fib(25) = 75025. Demonstrates mutable Hashtbl through the OCaml
stdlib API in real recursive code.
This commit is contained in:
2026-05-08 19:10:49 +00:00
parent 360a3ed51f
commit fff8fe2dc8
3 changed files with 19 additions and 0 deletions

View File

@@ -7,6 +7,7 @@
"factorial.ml": 3628800,
"fizzbuzz.ml": 57,
"list_ops.ml": 30,
"memo_fib.ml": 75025,
"module_use.ml": 3,
"mutable_record.ml": 10,
"option_match.ml": 5,

View File

@@ -0,0 +1,15 @@
(* Baseline: memoized fibonacci using Hashtbl *)
let cache = Hashtbl.create 16 ;;
let rec fib n =
if n < 2 then n
else
match Hashtbl.find_opt cache n with
| Some v -> v
| None ->
let v = fib (n - 1) + fib (n - 2) in
Hashtbl.add cache n v ;
v
;;
fib 25

View File

@@ -407,6 +407,9 @@ _Newest first._
binary search tree (`type 'a tree = Leaf | Node of 'a * 'a tree *
'a tree`) with insert + in-order traversal. Tests parametric ADT,
recursive match, List.append, List.fold_left.
- 2026-05-08 Phase 5.1 — memo_fib.ml baseline (16/16 pass). Memoized
fibonacci using `Hashtbl.find_opt` + `Hashtbl.add`. fib(25) = 75025.
Demonstrates mutable dict semantics through the OCaml stdlib API.
- 2026-05-08 Phase 5.1 — queens.ml baseline (15/15 pass). 4-queens
count via recursive backtracking with `List.fold_left`. Returns 2
(the two solutions of 4-queens). Per-program timeout in run.sh