diff --git a/plans/haskell-on-sx.md b/plans/haskell-on-sx.md index d59a2407..a799ec6d 100644 --- a/plans/haskell-on-sx.md +++ b/plans/haskell-on-sx.md @@ -84,7 +84,7 @@ Key mappings: - [ ] Classic programs in `lib/haskell/tests/programs/`: - [x] `fib.hs` — infinite Fibonacci stream - [x] `sieve.hs` — lazy sieve of Eratosthenes - - [ ] `quicksort.hs` — naive QS + - [x] `quicksort.hs` — naive QS - [ ] `nqueens.hs` - [ ] `calculator.hs` — parser combinator style expression evaluator - [ ] `lib/haskell/conformance.sh` + runner; `scoreboard.json` + `scoreboard.md` @@ -114,6 +114,11 @@ Key mappings: _Newest first._ +- **2026-04-25** — Classic program `quicksort.hs`: naive functional quicksort. + `qsort (x:xs) = qsort smaller ++ [x] ++ qsort larger where smaller = filter (< x) xs; larger = filter (>= x) xs`. + No new runtime additions needed — right sections, `filter`, `++` all worked out of the box. + 5 tests (general sort, empty, singleton, already-sorted, reverse-sorted). 395/395 green. + - **2026-04-25** — Classic program `sieve.hs`: lazy sieve of Eratosthenes. Added `mod`, `div`, `rem`, `quot` to `hk-binop` (and as first-class values in `hk-init-env`), enabling backtick operator use. The filter-based