NARS2000

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

NARS2000 is an open-source APL interpreter written by Bob Smith, a prominent APL developer and implementer from STSC in the 1970s and 1980s. NARS2000 contains advanced features and new datatypes and runs natively on Microsoft Windows, and other platforms under Wine. It is the spiritual successor of the first NARS (Nested Arrays Research System) which was designed and implemented in the early 1980s as a testbed for new ideas in APL, principally with nested arrays.

Language ideas include new functions, operators, datatypes, and many other extensions. The project is free open source software.

Primitives

The following list is incomplete.

Functions

One feature of NARS2000 is its heavy use of experimental primitive functions & operators. In the table below, symbols which are unknown or obscure in the APL world are linked to the NARS2000 wiki rather than the APL wiki.

Indices Array Lookup (high-rank Index-Of)
< Condense Less Than
> Dilate Greater Than
\ Expand
Find
Index Generator Index Of
Matrix Inverse Matrix Divide
Tally Mismatch
Partitioned Enclose
π Prime Factors Number Theory
Shape Reshape
Square Root Root
.. Sequence
Subset
Superset
§ Symmetric Difference
~ Not Without
Contract Less Than or Equal
Distract Greater Than or Equal

Operators

a∘\ Special Mesh
a∘⍀ Special Mesh First

Datatypes

Along with the Real numbers, NARS2000 supports the rest of the four Normed Division Algebra datatypes: Complex, Quaternion, and Octonion numbers, along with several Multi-Precision datatypes, and signed Infinities:

Notation Datatype
1i2 Complex
1i2j3k4 Quaternion
1i2j3k4l5ij6jk7kl8 Octonion
2.2x Rational Numbers
2.2v Variable-precision Floating Point Numbers
2.2± Ball Arithmetic
∞ and ¯∞ Signed Infinities
Not-a-Number (NaN)

Each of the 2, 4, or 8 coefficients of Hypercomplex numbers must all be the same Real number datatype (i.e., Boolean, Integer, Floating Point, Rational, Variable-precision Floating Point, or Ball Arithmetic), or else they will all be promoted to a single common Real number datatype.