Files
rose-ash/lib/ocaml/baseline/quicksort.ml
giles 46d0eb258e
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 38s
ocaml: phase 5.1 baseline 8/8 — quicksort + exceptions + closures
Added 3 baseline programs:
- closures.ml — curried make_adder; verifies closure capture
- quicksort.ml — recursive sort using List.filter + List.append, sums result
- exception_handle.ml — exception NegArg of int + raise + try/with

All 8/8 baseline programs pass through ocaml-run-program. Combined the
suite exercises: let-rec, modules, refs, for-loops, pattern matching,
exceptions, lambdas, list ops (map/filter/append/fold), arithmetic.

run.sh streamlined to one sx_server invocation per program. End-to-end
runtime ≈2 min.
2026-05-08 13:44:28 +00:00

11 lines
431 B
OCaml

(* Baseline: quicksort over a list, returns sum of sorted result *)
let rec quicksort lst =
match lst with
| [] -> []
| pivot :: rest ->
let smaller = List.filter (fun x -> x < pivot) rest in
let larger = List.filter (fun x -> x >= pivot) rest in
List.append (quicksort smaller) (pivot :: quicksort larger) ;;
let sorted = quicksort [3; 1; 4; 1; 5; 9; 2; 6; 5; 3; 5] ;;
List.fold_left (fun a b -> a + b) 0 sorted