From APL Wiki
Jump to navigation Jump to search

STSC's APL*PLUS Nested Arrays System (acronymized NARS, from "Nested Array Research System") was the first commercial nested APL implementation. Drawing on work by Jim Brown, Trenchard More, and development manager Bob Smith, NARS introduced a new set of functions for working with arrays that contain arrays, as well as many new operators such as Power.[2]


NARS was an extension of APL*PLUS, which used the APL.SV primitive set, except for Execute (). Only new primitives are shown here, with existing cases in parentheses.


Glyph Monadic Dyadic
Enclose Partitioned Enclose
Disclose or First Pick
Simple (NARS) Equivalent
Not-Simple Inequivalent
Split (Drop)
Mix (Take)
Unique Union
~ Set Difference
Catenate along the First Dimension

Additionally, Index Generator was extended to allow a vector argument, Replicate and Expand were extended to allow integer left arguments, and Reshape was extended to allow an empty right argument (using fill elements).


Syntax Monadic call Dyadic call
f/ (Reduction) Dyadic Reduction (Windowed Reduction)
f\ (Scan) Dyadic Scan
f¨ Each
f Commute
fB Power
f⍣∘ Power Limit
f⍣∘ Power Series
fg Composition (Beside)
Ag Composition (Bind)
fg Dual
A Convolution operator
A∘/ Mask
A∘\ Mesh
Direct definition
B Monadic
A Dyadic
AB Ambivalent

The Outer Product operator was renamed "Function Table".

Other functionality


APL dialects [edit]
Maintained APL+Win (APL*PLUS) ∙ APL2APL64APL\ivAprilCo-dfnsDyalog APLdzaima/APLExtended Dyalog APLGNU APLKAPNARS2000
Historical Iverson notationA Programming LanguageA+ (A) ∙ APL#APL.68000APL.SVAPLXAPL\1130APL\3000APL\360APL/700NARSngn/aplopenAPLRowanSAXSHARP APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNELIIIvyJJellyK (Q, KDB+) ∙ NialRAD