From e42aec8957c786faea73dbdf4a4fe0d14d93663b Mon Sep 17 00:00:00 2001 From: giles Date: Wed, 6 May 2026 19:25:07 +0000 Subject: [PATCH] =?UTF-8?q?plans:=20Phase=203=20complete=20=E2=80=94=20tic?= =?UTF-8?q?k=20membership/without/40+tests=20boxes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- plans/apl-on-sx.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plans/apl-on-sx.md b/plans/apl-on-sx.md index 839d3f03..40270db2 100644 --- a/plans/apl-on-sx.md +++ b/plans/apl-on-sx.md @@ -69,8 +69,8 @@ Core mapping: - [x] Index `⌷` (squad), bracket-indexing `A[I]` (sugar for `⌷`) - [x] Grade-up `⍋`, grade-down `⍒` - [x] Enclose `⊂`, disclose `⊃`, partition (subset deferred) -- [ ] Membership `∊`, find `⍳` (dyadic), without `~` (dyadic), unique `∪` (deferred to phase 6) -- [ ] 40+ tests in `lib/apl/tests/structural.sx` +- [x] Membership `∊`, find `⍳` (dyadic), without `~` (dyadic), unique `∪` (deferred to phase 6) +- [x] 40+ tests in `lib/apl/tests/structural.sx` ### Phase 4 — operators (THE SHOWCASE) - [ ] Reduce `f/` (last axis), `f⌿` (first axis) — including `∧/`, `∨/`, `+/`, `×/`, `⌈/`, `⌊/` @@ -118,6 +118,7 @@ data; format for string templating. _Newest first._ +- 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 - 2026-05-06: Phase 3 step 4 — squad ⌷ (scalar/multi-dim/partial-slice); 66/66 tests