From 2c7246e11d32de01a5a05bcf21a7635c3f2262c1 Mon Sep 17 00:00:00 2001 From: giles Date: Sat, 9 May 2026 20:16:49 +0000 Subject: [PATCH] ocaml: phase 5.1 euler6.ml baseline (Project Euler #6, sum^2 - sum_sq for 1..100 = 25164150) Project Euler #6: difference between square of sum and sum of squares for 1..100. let euler6 n = let sum = ref 0 in let sum_sq = ref 0 in for i = 1 to n do sum := !sum + i; sum_sq := !sum_sq + i * i done; !sum * !sum - !sum_sq euler6 100 = 5050^2 - 338350 = 25502500 - 338350 = 25164150 102 baseline programs total. --- lib/ocaml/baseline/euler6.ml | 12 ++++++++++++ lib/ocaml/baseline/expected.json | 1 + plans/ocaml-on-sx.md | 4 ++++ 3 files changed, 17 insertions(+) create mode 100644 lib/ocaml/baseline/euler6.ml diff --git a/lib/ocaml/baseline/euler6.ml b/lib/ocaml/baseline/euler6.ml new file mode 100644 index 00000000..d8d8cf5c --- /dev/null +++ b/lib/ocaml/baseline/euler6.ml @@ -0,0 +1,12 @@ +let euler6 n = + let sum = ref 0 in + let sum_sq = ref 0 in + for i = 1 to n do + sum := !sum + i; + sum_sq := !sum_sq + i * i + done; + !sum * !sum - !sum_sq + +;; + +euler6 100 diff --git a/lib/ocaml/baseline/expected.json b/lib/ocaml/baseline/expected.json index 146a53ce..5285bebd 100644 --- a/lib/ocaml/baseline/expected.json +++ b/lib/ocaml/baseline/expected.json @@ -26,6 +26,7 @@ "exception_user.ml": 26, "euler1.ml": 233168, "euler2.ml": 4613732, + "euler6.ml": 25164150, "expr_eval.ml": 16, "expr_simp.ml": 22, "factorial.ml": 3628800, diff --git a/plans/ocaml-on-sx.md b/plans/ocaml-on-sx.md index 5596f6bc..253e4b2b 100644 --- a/plans/ocaml-on-sx.md +++ b/plans/ocaml-on-sx.md @@ -407,6 +407,10 @@ _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 — euler6.ml baseline (Project Euler #6, square + of sum minus sum of squares for 1..100 = 25164150). Single for-loop + threading two refs; (sum 1..100)^2 - sum(i^2 for 1..100) = 5050^2 + - 338350 = 25502500 - 338350 = 25164150. 102 baseline programs total. - 2026-05-09 Phase 5.1 — euler2.ml baseline (Project Euler #2, sum of even Fibonacci ≤ 4M = 4613732). Iterative two-ref Fibonacci, accumulating only even terms. Sequence: 1, 2, 3, 5, 8, 13, 21,