diff --git a/plans/apl-on-sx.md b/plans/apl-on-sx.md index e78c93d0..8c9ce635 100644 --- a/plans/apl-on-sx.md +++ b/plans/apl-on-sx.md @@ -64,7 +64,7 @@ Core mapping: ### Phase 3 — structural primitives + indexing - [x] Reshape `⍴`, ravel `,`, transpose `⍉` (full + dyadic axis spec) -- [ ] Take `↑`, drop `↓`, rotate `⌽` (last axis), `⊖` (first axis) +- [x] Take `↑`, drop `↓`, rotate `⌽` (last axis), `⊖` (first axis) - [ ] Catenate `,` (last axis) and `⍪` (first axis) - [ ] Index `⌷` (squad), bracket-indexing `A[I]` (sugar for `⌷`) - [ ] Grade-up `⍋`, grade-down `⍒` @@ -118,6 +118,7 @@ data; format for string templating. _Newest first._ +- 2026-05-06: Phase 3 step 2 — take ↑ (multi-axis, pad), drop ↓, reverse/rotate ⌽⊖ (last+first axis); 50/50 tests - 2026-05-06: Phase 3 step 1 — reshape ⍴ (cycling), transpose ⍉ (monadic+dyadic); helpers apl-strides/flat->multi/multi->flat; 27/27 structural tests; lib/apl/tests/structural.sx - 2026-04-26: Phase 2 complete — array model + 7 scalar primitive groups; 82/82 tests; lib/apl/runtime.sx + lib/apl/tests/scalar.sx - 2026-04-26: parser (Phase 1 step 2) — 44/44 parser tests green (90/90 total); right-to-left segment algorithm; derived fns, outer/inner product, dfns with guards, strand handling; `lib/apl/parser.sx` + `lib/apl/tests/parse.sx`