diff --git a/plans/apl-on-sx.md b/plans/apl-on-sx.md index 40270db2..69e14f9a 100644 --- a/plans/apl-on-sx.md +++ b/plans/apl-on-sx.md @@ -73,7 +73,7 @@ Core mapping: - [x] 40+ tests in `lib/apl/tests/structural.sx` ### Phase 4 — operators (THE SHOWCASE) -- [ ] Reduce `f/` (last axis), `f⌿` (first axis) — including `∧/`, `∨/`, `+/`, `×/`, `⌈/`, `⌊/` +- [x] Reduce `f/` (last axis), `f⌿` (first axis) — including `∧/`, `∨/`, `+/`, `×/`, `⌈/`, `⌊/` - [ ] Scan `f\`, `f⍀` - [ ] Each `f¨` — applies `f` to each scalar/element - [ ] Outer product `∘.f` — `1 2 3 ∘.× 1 2 3` ↦ multiplication table @@ -118,6 +118,7 @@ data; format for string templating. _Newest first._ +- 2026-05-06: Phase 4 step 1 — reduce f/ (last axis) + f⌿ (first axis); apl-reduce/apl-reduce-first; 110/110 tests - 2026-05-06: Phase 3 complete — membership ∊, dyadic ⍳ (index-of), without ~ (index-of returns nil for not-found); 94/94 tests - 2026-05-06: Phase 3 step 6 — enclose ⊂ / disclose ⊃ (box/unbox, rank-0 detect via type-of); 82/82 tests - 2026-05-06: Phase 3 step 5 — grade-up ⍋ / grade-down ⍒ (stable insertion sort); 74/74 tests