Feature support across Dyalog APL and GNU APL modes
APL Run defaults to Dyalog mode (⎕DIALECT←'dyalog').
Switch to GNU APL with ⎕DIALECT←'gnu'.
Both dialects share core primitives; Dyalog mode adds modern operators
and control structures.
| Feature | GNU APL | Dyalog |
|---|---|---|
| Core Primitives | ||
| Scalar fns + - × ÷ * ⍟ | ⌈ ⌊ ! ○ | ✅ | ✅ |
| Structural ⍴ ⍉ , ⍪ ⌽ ⊖ ↑ ↓ ⊂ ⊃ ⊆ | ✅ | ✅ |
| Search ⍳ ⍸ ∊ ⍷ ∪ ∩ ⍋ ⍒ ≡ ≢ | ✅ | ✅ |
| Logic = ≠ < > ≤ ≥ ∨ ∧ ⍱ ⍲ ~ | ✅ | ✅ |
| Math ⊥ ⊤ ⌹ ? ! | ✅ | ✅ |
| Operators | ||
| Core / \ ⌿ ⍀ ¨ ⍨ ⍣ ∘ . | ✅ | ✅ |
| Rank ⍤ | — | ✅ |
| Over ⍥ | — | ✅ |
| At @ | — | ✅ |
| Key ⌸ | — | ✅ |
| Stencil ⌺ | — | ✅ |
| Variant ⍠ | — | ✅ |
| Control Flow | ||
| Dfns {⍺ ⍵} | ✅ | ✅ |
| Tradfns ∇ | ✅ | ✅ |
| Guards cond: expr | ✅ | ✅ |
| :If :ElseIf :Else :EndIf | — | ✅ |
| :For :In :EndFor | — | ✅ |
| :While :EndWhile | — | ✅ |
| :Repeat :Until | — | ✅ |
| :Select :Case :EndSelect | — | ✅ |
| :Leave :Continue | — | ✅ |
| System Functions | ||
| ⎕IO ⎕TS ⎕UCS ⎕CT ⎕PP ⎕PW | ✅ | ✅ |
| ⎕JSON ⎕CSV ⎕XML | — | ✅ |
| ⎕NS ⎕NC ⎕NL ⎕CLASS | — | ✅ |
| ⎕NGET ⎕NPUT ⎕NEXISTS ⎕MKDIR | — | ✅ |
| ⎕C ⎕DT ⎕DL ⎕VFI ⎕SIGNAL | — | ✅ |
| ⎕TRAP ⎕DMX | — | ⚠ |
Verified against the official GNU APL test suite (1780 assertions) and 137 Dyalog-specific tests.
📊 View GNU APL Test Coverage Report