NARS2000: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
m (Text replacement - "<source" to "<syntaxhighlight")
m (→‎Operators: Mask has a page now)
 
(5 intermediate revisions by 4 users not shown)
Line 39: Line 39:
! Glyph                              !! Monadic            !! Dyadic
! Glyph                              !! Monadic            !! Dyadic
|-
|-
| <syntaxhighlight lang=apl inline>⍸</source>  || [[Indices]]        || Array Lookup (high-rank [[Index-Of]])
| <syntaxhighlight lang=apl inline>⍸</syntaxhighlight>  || [[Indices]]        || Array Lookup (high-rank [[Index-Of]])
|-
|-
| <syntaxhighlight lang=apl inline><</source>  || [http://wiki.nars2000.org/index.php?title=Condense Condense] || [[Less Than]]
| <syntaxhighlight lang=apl inline><</syntaxhighlight>  || [http://wiki.nars2000.org/index.php?title=Condense Condense] || [[Less Than]]
|-
|-
| <syntaxhighlight lang=apl inline>></source>  || [http://wiki.nars2000.org/index.php?title=Dilate Dilate]    || [[Greater Than]]
| <syntaxhighlight lang=apl inline>></syntaxhighlight>  || [http://wiki.nars2000.org/index.php?title=Dilate Dilate]    || [[Greater Than]]
|-
|-
| <syntaxhighlight lang=apl inline>\</source>  ||                    || [[Expand]]
| <syntaxhighlight lang=apl inline>\</syntaxhighlight>  ||                    || [[Expand]]
|-
|-
| <syntaxhighlight lang=apl inline>⍷</source>  ||                    || [[Find]]
| <syntaxhighlight lang=apl inline>⍷</syntaxhighlight>  ||                    || [[Find]]
|-
|-
| <syntaxhighlight lang=apl inline>⍳</source>  || [[Index Generator]] || [[Index Of]]
| <syntaxhighlight lang=apl inline>⍳</syntaxhighlight>  || [[Index Generator]] || [[Index Of]]
|-
|-
| <syntaxhighlight lang=apl inline>⌹</source>  || [[Matrix Inverse]]  || [[Matrix Divide]]
| <syntaxhighlight lang=apl inline>⌹</syntaxhighlight>  || [[Matrix Inverse]]  || [[Matrix Divide]]
|-
|-
| <syntaxhighlight lang=apl inline>≢</source>  || [[Tally]]          || [[Not Match|Mismatch]]
| <syntaxhighlight lang=apl inline>≢</syntaxhighlight>  || [[Tally]]          || [[Not Match|Mismatch]]
|-
|-
| <syntaxhighlight lang=apl inline>⊂</source>  ||                    || [[Partitioned Enclose]]
| <syntaxhighlight lang=apl inline>⊂</syntaxhighlight>  ||                    || [[Partitioned Enclose]]
|-
|-
| <syntaxhighlight lang=apl inline>π</source>  || [http://wiki.nars2000.org/index.php?title=Primes Prime Factors] || [http://wiki.nars2000.org/index.php?title=Primes Number Theory]
| <syntaxhighlight lang=apl inline>π</syntaxhighlight>  || [http://wiki.nars2000.org/index.php?title=Primes Prime Factors] || [http://wiki.nars2000.org/index.php?title=Primes Number Theory]
|-
|-
| <syntaxhighlight lang=apl inline>⍴</source>  || [[Shape]]          || [[Reshape]]
| <syntaxhighlight lang=apl inline>⍴</syntaxhighlight>  || [[Shape]]          || [[Reshape]]
|-
|-
| <syntaxhighlight lang=apl inline>√</source>  || [[Square Root]]    || [[Root]]
| <syntaxhighlight lang=apl inline>√</syntaxhighlight>  || [[Square Root]]    || [[Root]]
|-
|-
| <syntaxhighlight lang=apl inline>..</source> ||                    || [http://wiki.nars2000.org/index.php?title=Sequence Sequence]
| <syntaxhighlight lang=apl inline>..</syntaxhighlight> ||                    || [[Range|Sequence]]
|-
|-
| <syntaxhighlight lang=apl inline>⊆</source>  ||                    || [http://wiki.nars2000.org/index.php?title=Sets#subset Subset]
| <syntaxhighlight lang=apl inline>⊆</syntaxhighlight>  ||                    || [http://wiki.nars2000.org/index.php?title=Sets#subset Subset]
|-
|-
| <syntaxhighlight lang=apl inline>⊇</source>  ||                    || [http://wiki.nars2000.org/index.php?title=Sets#superset Superset]
| <syntaxhighlight lang=apl inline>⊇</syntaxhighlight>  ||                    || [http://wiki.nars2000.org/index.php?title=Sets#superset Superset]
|-
|-
| <syntaxhighlight lang=apl inline>§</source>  ||                    || [http://wiki.nars2000.org/index.php?title=Sets#symmetric_difference Symmetric Difference]
| <syntaxhighlight lang=apl inline>§</syntaxhighlight>  ||                    || [http://wiki.nars2000.org/index.php?title=Sets#symmetric_difference Symmetric Difference]
|-
|-
| <syntaxhighlight lang=apl inline>~</source>  || [[Not]]            || [[Without]]
| <syntaxhighlight lang=apl inline>~</syntaxhighlight>  || [[Not]]            || [[Without]]
|-
|-
| <syntaxhighlight lang=apl inline>≤</source>  || [http://wiki.nars2000.org/index.php?title=Ball_Arithmetic#Contract Contract] || [[Less Than or Equal]]
| <syntaxhighlight lang=apl inline>≤</syntaxhighlight>  || [http://wiki.nars2000.org/index.php?title=Ball_Arithmetic#Contract Contract] || [[Less Than or Equal]]
|-
|-
| <syntaxhighlight lang=apl inline>≥</source>  || [http://wiki.nars2000.org/index.php?title=Ball_Arithmetic#Distract Distract] || [[Greater Than or Equal]]
| <syntaxhighlight lang=apl inline>≥</syntaxhighlight>  || [http://wiki.nars2000.org/index.php?title=Ball_Arithmetic#Distract Distract] || [[Greater Than or Equal]]
|}
|}


Line 83: Line 83:
! Glyph                                !! Valence !! Monadic call      !! Dyadic call
! Glyph                                !! Valence !! Monadic call      !! Dyadic call
|-
|-
| <syntaxhighlight lang=apl inline>⍣</source>  || Dyadic  ||colspan=2| [http://wiki.nars2000.org/index.php?title=Power Power]
| <syntaxhighlight lang=apl inline>⍣</syntaxhighlight>  || Dyadic  ||colspan=2| [http://wiki.nars2000.org/index.php?title=Power Power]
|-
|-
| <syntaxhighlight lang=apl inline>⍨</source>  || Monadic || [http://wiki.nars2000.org/index.php?title=Commute-Duplicate Duplicate] || [http://wiki.nars2000.org/index.php?title=Commute-Duplicate Commute]
| <syntaxhighlight lang=apl inline>⍨</syntaxhighlight>  || Monadic || [http://wiki.nars2000.org/index.php?title=Commute-Duplicate Duplicate] || [http://wiki.nars2000.org/index.php?title=Commute-Duplicate Commute]
|-
|-
| <syntaxhighlight lang=apl inline>⍥</source>  || Dyadic  ||colspan=2| Composition ([[Over]])
| <syntaxhighlight lang=apl inline>⍥</syntaxhighlight>  || Dyadic  ||colspan=2| Composition ([[Over]])
|-
|-
| <syntaxhighlight lang=apl inline>∘</source>  || Dyadic  ||colspan=2| [[Compose]]
| <syntaxhighlight lang=apl inline>∘</syntaxhighlight>  || Dyadic  ||colspan=2| [[Compose]]
|-
|-
| <syntaxhighlight lang=apl inline>⍤</source>  || Dyadic  ||colspan=2| [[Rank operator|Rank]]
| <syntaxhighlight lang=apl inline>⍤</syntaxhighlight>  || Dyadic  ||colspan=2| [[Rank operator|Rank]]
|-
|-
| <syntaxhighlight lang=apl inline>‼</source>  || Monadic || [http://wiki.nars2000.org/index.php/Combinatorial Combinatorial] ||
| <syntaxhighlight lang=apl inline>‼</syntaxhighlight>  || Monadic || [http://wiki.nars2000.org/index.php/Combinatorial Combinatorial] ||
|-
|-
| <syntaxhighlight lang=apl inline>⍡</source>  || Dyadic  ||                  || [http://wiki.nars2000.org/index.php?title=Convolution Convolution]
| <syntaxhighlight lang=apl inline>⍡</syntaxhighlight>  || Dyadic  ||                  || [http://wiki.nars2000.org/index.php?title=Convolution Convolution]
|-
|-
| <syntaxhighlight lang=apl inline>.</source>  || Dyadic  || [http://wiki.nars2000.org/index.php?title=Determinant_Operator Determinant] || [[Inner Product]]
| <syntaxhighlight lang=apl inline>.</syntaxhighlight>  || Dyadic  || [[Determinant]] || [[Inner Product]]
|-
|-
| <syntaxhighlight lang=apl inline>∂</source>  || Monadic ||colspan=2| Numerical (Partial) [http://wiki.nars2000.org/index.php/Derivative Derivative]
| <syntaxhighlight lang=apl inline>∂</syntaxhighlight>  || Monadic ||colspan=2| Numerical (Partial) [http://wiki.nars2000.org/index.php/Derivative Derivative]
|-
|-
| <syntaxhighlight lang=apl inline>∫</source>  || Monadic ||colspan=2| Numerical [http://wiki.nars2000.org/index.php/Integral Integral]
| <syntaxhighlight lang=apl inline>∫</syntaxhighlight>  || Monadic ||colspan=2| Numerical [http://wiki.nars2000.org/index.php/Integral Integral]
|-  
|-  
| <syntaxhighlight lang=apl inline>⌻</source>  || Monadic ||colspan=2| [http://wiki.nars2000.org/index.php/Matrix Matrix]
| <syntaxhighlight lang=apl inline>⌻</syntaxhighlight>  || Monadic ||colspan=2| [http://wiki.nars2000.org/index.php/Matrix Matrix]
|-
|-
| <syntaxhighlight lang=apl inline>⍦</source>  || Monadic ||colspan=2| [http://wiki.nars2000.org/index.php/Multisets Multisets]
| <syntaxhighlight lang=apl inline>⍦</syntaxhighlight>  || Monadic ||colspan=2| [http://wiki.nars2000.org/index.php/Multisets Multisets]
|-
|-
| <syntaxhighlight lang=apl inline>⊙</source>  || Monadic ||colspan=2| [http://wiki.nars2000.org/index.php/Null Null]
| <syntaxhighlight lang=apl inline>⊙</syntaxhighlight>  || Monadic ||colspan=2| [http://wiki.nars2000.org/index.php/Null Null]
|-
|-
| <syntaxhighlight lang=apl inline>a∘/</source> || Special ||                  || [http://wiki.nars2000.org/index.php?title=Compose#Mask Mask]
| <syntaxhighlight lang=apl inline>a∘/</syntaxhighlight> || Special ||                  || [[Mask]]
|-
|-
| <syntaxhighlight lang=apl inline>a∘⌿</source> || Special ||                  || [http://wiki.nars2000.org/index.php?title=Compose#Mask Mask] First
| <syntaxhighlight lang=apl inline>a∘⌿</syntaxhighlight> || Special ||                  || [[Mask]] First
|-
|-
| <syntaxhighlight lang=apl inline>a∘\</source> || Special ||                  || [[Mesh]]
| <syntaxhighlight lang=apl inline>a∘\</syntaxhighlight> || Special ||                  || [[Mesh]]
|-
|-
| <syntaxhighlight lang=apl inline>a∘⍀</source> || Special ||                  || [[Mesh]] First
| <syntaxhighlight lang=apl inline>a∘⍀</syntaxhighlight> || Special ||                  || [[Mesh]] First
|-
|-
| <syntaxhighlight lang=apl inline>⍠</source>  || Dyadic  ||colspan=2| [http://wiki.nars2000.org/index.php?title=Variant Variant]
| <syntaxhighlight lang=apl inline>⍠</syntaxhighlight>  || Dyadic  ||colspan=2| [http://wiki.nars2000.org/index.php?title=Variant Variant]
|-
|-
| <syntaxhighlight lang=apl inline>≈</source>  || Monadic ||colspan=2| [http://wiki.nars2000.org/index.php?title=Ball_Arithmetic Ball Arithmetic]
| <syntaxhighlight lang=apl inline>≈</syntaxhighlight>  || Monadic ||colspan=2| [http://wiki.nars2000.org/index.php?title=Ball_Arithmetic Ball Arithmetic]
|}
|}


Line 129: Line 129:
! Notation !! Datatype
! Notation !! Datatype
|-
|-
| <syntaxhighlight lang=apl inline>1i2</source> || [http://www.sudleyplace.com/APL/Hypercomplex%20Numbers%20in%20APL.pdf Complex]
| <syntaxhighlight lang=apl inline>1i2</syntaxhighlight> || [http://www.sudleyplace.com/APL/Hypercomplex%20Numbers%20in%20APL.pdf Complex]
|-
|-
| <syntaxhighlight lang=apl inline>1i2j3k4</source> || [http://www.sudleyplace.com/APL/Hypercomplex%20Numbers%20in%20APL.pdf Quaternion]
| <syntaxhighlight lang=apl inline>1i2j3k4</syntaxhighlight> || [http://www.sudleyplace.com/APL/Hypercomplex%20Numbers%20in%20APL.pdf Quaternion]
|-
|-
| <syntaxhighlight lang=apl inline>1i2j3k4l5ij6jk7kl8</source> || [http://www.sudleyplace.com/APL/Hypercomplex%20Numbers%20in%20APL.pdf Octonion]
| <syntaxhighlight lang=apl inline>1i2j3k4l5ij6jk7kl8</syntaxhighlight> || [http://www.sudleyplace.com/APL/Hypercomplex%20Numbers%20in%20APL.pdf Octonion]
|-
|-
| <syntaxhighlight lang=apl inline>2.2x</source> || [http://wiki.nars2000.org/index.php?title=Rational_and_VFP_Numbers Rational Numbers]
| <syntaxhighlight lang=apl inline>2.2x</syntaxhighlight> || [http://wiki.nars2000.org/index.php?title=Rational_and_VFP_Numbers Rational Numbers]
|-
|-
| <syntaxhighlight lang=apl inline>2.2v</source> || [http://wiki.nars2000.org/index.php?title=Rational_and_VFP_Numbers Variable-precision Floating Point Numbers]
| <syntaxhighlight lang=apl inline>2.2v</syntaxhighlight> || [http://wiki.nars2000.org/index.php?title=Rational_and_VFP_Numbers Variable-precision Floating Point Numbers]
|-
|-
| <syntaxhighlight lang=apl inline>2.2±</source> || [http://wiki.nars2000.org/index.php?title=Ball_Arithmetic Ball Arithmetic]
| <syntaxhighlight lang=apl inline>2.2±</syntaxhighlight> || [http://wiki.nars2000.org/index.php?title=Ball_Arithmetic Ball Arithmetic]
|-
|-
| <syntaxhighlight lang=apl inline>∞ and ¯∞</source> || [http://wiki.nars2000.org/index.php?title=Infinity Signed Infinities]
| <syntaxhighlight lang=apl inline>∞ and ¯∞</syntaxhighlight> || [http://wiki.nars2000.org/index.php?title=Infinity Signed Infinities]
|-
|-
| <syntaxhighlight lang=apl inline>∅</source> || [http://wiki.nars2000.org/index.php?title=NaN Not-a-Number (NaN)]
| <syntaxhighlight lang=apl inline>∅</syntaxhighlight> || [http://wiki.nars2000.org/index.php?title=NaN 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.
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.
== Syntax ==
* [http://wiki.nars2000.org/index.php?title=Hyperators Hyperators]


== External links ==
== External links ==

Latest revision as of 02:29, 9 March 2024



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.

Glyph Monadic Dyadic
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

Glyph Valence Monadic call Dyadic call
Dyadic Power
Monadic Duplicate Commute
Dyadic Composition (Over)
Dyadic Compose
Dyadic Rank
Monadic Combinatorial
Dyadic Convolution
. Dyadic Determinant Inner Product
Monadic Numerical (Partial) Derivative
Monadic Numerical Integral
Monadic Matrix
Monadic Multisets
Monadic Null
a∘/ Special Mask
a∘⌿ Special Mask First
a∘\ Special Mesh
a∘⍀ Special Mesh First
Dyadic Variant
Monadic Ball Arithmetic

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.

Syntax

External links


APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLDyalog APL Visiondzaima/APLGNU APLKapNARS2000PometoTinyAPL
Historical A Programming LanguageA+ (A) ∙ APL#APL2CAPL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXExtended Dyalog APLIverson notationIVSYS/7090NARSngn/aplopenAPLOperators and FunctionsPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyK (Goal, Klong, Q) ∙ KamilaLispLang5LilNialRADUiua
Overviews Comparison of APL dialectsTimeline of array languagesTimeline of influential array languagesFamily tree of array languages