Skip to content

MARPLE for J Users

If you know J, MARPLE will feel familiar — both languages descend from Iverson's Dictionary of APL and share the leading-axis philosophy. But MARPLE uses APL glyphs rather than ASCII spellings.

What's the same (conceptually)

  • Rank operator — J's " is MARPLE's . Same semantics: cell decomposition, frame agreement, scalar extension at the frame level.
  • Leading-axis theory — From () selects major cells, just as { does in J. Everything defaults to the first axis; rank generalises to any axis.
  • No nested arrays — MARPLE is flat, like J's boxed-but-not-nested model (though MARPLE doesn't yet have boxing).
  • Direct definition — MARPLE's dfns ({⍺+⍵}) correspond to J's explicit definitions. is y., is x..
  • Flat arrays with cells and frames — the conceptual model is identical.

Key differences

J MARPLE Notes
+/ y +/ Y Reduce — same semantics
x + y X + Y Scalar functions — same
i. 5 ⍳ 5 Iota — J is 0-origin by default
5 3 $ i.15 5 3 ⍴ ⍳15 Reshape
f"1 y (f⍤1) Y Rank operator
{ From / indexing
3 : 'x+y' {⍺+⍵} Explicit function definition
Fork: (+/ % #) {(+/⍵)÷⍴⍵} Tacit vs dfn