An implementation of APL, written in Haskell.
- All primitives, except ⌹, ⌺, and ⌸
- Functions
- (Monadic): ⍎⍕
- (Dyadic): <≤≥>=⍲⍱∧∨⊤⊥∪∩⍷/⌿\⍀
- (Ambivalent): +-×÷⍳⍴*⍟⌊⌈⊢⊣|≡≢○!?⍉⌽⊖∊⍋⍒~≠⊃⊂⊆,⍪⌷⍸↓↑
- Operators
- (Monadic): ⍨¨∘./⌿\⍀
- (Dyadic): ⍤⍥∘⍣@.
- Functions
- Direct Functions (dfns) (Lambda Functions)
- Direct Operators (dops) (Higher-Order Lambda Functions)
- Assignment
- Modified Assignment (x+←1)
- Selective Assignment (((⌽x)←y); (w x←y z); x[i;j;k]←y)
- Tacit (forks and atops)
- Axis Specification (⌽[2]x)
- Array Subscripting
- Stranding
- I/O with (⎕←) and ⍞
- Quad Names (⎕IO)
- Misc. Primitive Glyphs: ¯⍬⋄⍝
- Configurable REPL (Haskeline)
- Tab-Completion for Glyphs
- Pretty-Printing for Arrays (boxing) and Derived Functions (trees)
-v
option for printing syntax trees before evaluation