ocaml: phase 5.1 pascal.ml baseline (Pascal triangle row 10 middle = C(10,5) = 252)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 27s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 27s
next_row prepends 1, walks adjacent pairs (x, y) emitting x+y,
appends a final 1:
let rec next_row prev =
let rec aux a =
match a with
| [_] -> [1]
| x :: y :: rest -> (x + y) :: aux (y :: rest)
| [] -> []
in
1 :: aux prev
row n iterates next_row n times starting from [1] using a ref +
'for _ = 1 to n do r := next_row !r done'.
row 10 = [1;10;45;120;210;252;210;120;45;10;1]
List.nth (row 10) 5 = 252 = C(10, 5)
Exercises three-arm match including [_] singleton wildcard, x :: y
:: rest binding, and the for-loop with wildcard counter. 45 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 — pascal.ml baseline (Pascal's triangle row
|
||||
10 middle = C(10, 5) = 252). next_row prepends 1, walks adjacent
|
||||
pairs (x, y) emitting x+y, appends a final 1. row n iterates
|
||||
next_row n times starting from [1]. Three-arm match including
|
||||
`[_]` (singleton wildcard) and `x :: y :: rest`. Iteration via
|
||||
`for _ = 1 to n do r := next_row !r done`. 45 baseline programs
|
||||
total.
|
||||
- 2026-05-09 Phase 5.1 — run_length.ml baseline (run-length encoding,
|
||||
sum of counts = 11). RLE encodes [1;1;1;2;2;3;3;3;3;1;1] as
|
||||
[(1,3);(2,2);(3,4);(1,2)]. Sum-of-counts = 11 verifies that the
|
||||
|
||||
Reference in New Issue
Block a user