ocaml: phase 5.1 flatten_tree.ml baseline (parametric ADT flatten, sum 1..7 = 28)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 25s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 25s
Defines a parametric tree:
type 'a tree = Leaf of 'a | Node of 'a tree list
let rec flatten t =
match t with
| Leaf x -> [x]
| Node ts -> List.concat (List.map flatten ts)
Test tree has 3 levels of nesting:
Node [Leaf 1; Node [Leaf 2; Leaf 3];
Node [Node [Leaf 4]; Leaf 5; Leaf 6];
Leaf 7]
flattens to [1;2;3;4;5;6;7] -> sum = 28.
Tests parametric ADT, mutual recursion via map+self, List.concat.
55 baseline programs total.
This commit is contained in:
@@ -407,6 +407,13 @@ _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-09 Phase 5.1 — flatten_tree.ml baseline (parametric ADT
|
||||
flatten, sum 1..7 = 28). Defines `type 'a tree = Leaf of 'a |
|
||||
Node of 'a tree list` then `flatten` recursively expands using
|
||||
`List.concat (List.map flatten ts)`. Tree has 3 levels of
|
||||
nesting; flattens to [1;2;3;4;5;6;7]. Tests parametric ADT, mutual
|
||||
recursion via map+self, List.concat from runtime. 55 baseline
|
||||
programs total.
|
||||
- 2026-05-09 Phase 5.1 — gcd_lcm.ml baseline (Euclidean gcd + lcm,
|
||||
12 + 12 + 36 = 60). Two-line baseline: `let rec gcd a b = if b = 0
|
||||
then a else gcd b (a mod b)` + `let lcm a b = a * b / gcd a b`.
|
||||
|
||||
Reference in New Issue
Block a user