SHARP APL: Difference between revisions

Jump to navigation Jump to search
→‎Primitive functions: Show 1987 primitives in the tables: some guessing, but it's better than using SAX, which may have primitives never added to SHARP
(→‎Primitive functions: Show 1987 primitives in the tables: some guessing, but it's better than using SAX, which may have primitives never added to SHARP)
Line 47: Line 47:
== Primitive functions ==
== Primitive functions ==


=== Arithmetic ===
The primitives shown here are those for SHARP APL around 1987, near the end of the decline of [[time-sharing]] APL. Some primitives from [[A Dictionary of APL]] were added after this, including [[Find|In]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Nubsieve]] (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>), and [[Raze]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), and these appear in [[SAX]].


==== Scalar ====
=== Scalar ===


All scalar functions have rank zero.
All scalar functions have rank zero.
Line 56: Line 56:
! Glyph                              !! Monadic                !! Dyadic
! Glyph                              !! Monadic                !! Dyadic
|-
|-
| <syntaxhighlight lang=apl inline>+</syntaxhighlight> || [[Conjugate]]/Identity || [[Addition]]
| <syntaxhighlight lang=apl inline>+</syntaxhighlight> || [[Conjugate]]                 || [[Addition]]
|-
|-
| <syntaxhighlight lang=apl inline>-</syntaxhighlight> || [[Negate]]             || [[Subtraction]]
| <syntaxhighlight lang=apl inline>-</syntaxhighlight> || [[Negate]]                     || [[Subtraction]]
|-
|-
| <syntaxhighlight lang=apl inline>×</syntaxhighlight> || [[Signum]]             || [[Multiplication]]
| <syntaxhighlight lang=apl inline>×</syntaxhighlight> || [[Signum]]                     || [[Multiplication]]
|-
|-
| <syntaxhighlight lang=apl inline>÷</syntaxhighlight> || [[Reciprocal]]         || [[Division]]
| <syntaxhighlight lang=apl inline>÷</syntaxhighlight> || [[Reciprocal]]                 || [[Division]]
|-
|-
| <syntaxhighlight lang=apl inline>*</syntaxhighlight> || [[Exponential]]       || [[Power function|Power]]
| <syntaxhighlight lang=apl inline>*</syntaxhighlight> || [[Exponential]]               || [[Power function|Power]]
|-
|-
| <syntaxhighlight lang=apl inline>⍟</syntaxhighlight> || [[Natural Logarithm]] || [[Logarithm|Base-⍺ Logarithm]]
| <syntaxhighlight lang=apl inline>⍟</syntaxhighlight> || [[Natural Logarithm]]         || [[Logarithm|Base-⍺ Logarithm]]
|-
|-
| <syntaxhighlight lang=apl inline>|</syntaxhighlight> || [[Magnitude]]         || [[Residue]]
| <syntaxhighlight lang=apl inline>|</syntaxhighlight> || [[Magnitude]]                 || [[Residue]]
|-
|-
| <syntaxhighlight lang=apl inline>!</syntaxhighlight> || [[Factorial]]         || Out-Of/[[Combinations]]
| <syntaxhighlight lang=apl inline>!</syntaxhighlight> || [[Factorial]]                 || [[Binomial]]
|-
|-
| <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || [[Floor]]             || [[Minimum]]
| <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || [[Floor]]                     || [[Minimum]]
|-
|-
| <syntaxhighlight lang=apl inline>⌈</syntaxhighlight> || [[Ceiling]]           || [[Maximum]]
| <syntaxhighlight lang=apl inline>⌈</syntaxhighlight> || [[Ceiling]]                   || [[Maximum]]
|-
|-
| <syntaxhighlight lang=apl inline>○</syntaxhighlight> || [[Pi Times]]           || [[Circle functions]]
| <syntaxhighlight lang=apl inline>○</syntaxhighlight> || [[Pi Times]]                   || [[Circle functions]]
|-
|-
| <syntaxhighlight lang=apl inline>∧</syntaxhighlight> ||                       || [[And]]/Least Common Multiple (LCM)
| <syntaxhighlight lang=apl inline>∧</syntaxhighlight> ||                               || [[And]]/[[LCM]]
|-
|-
| <syntaxhighlight lang=apl inline>∨</syntaxhighlight> ||                       || [[Or]]/Greatest Common Divisor (GCD)
| <syntaxhighlight lang=apl inline>∨</syntaxhighlight> ||                               || [[Or]]/[[GCD]]
|-
|-
| <syntaxhighlight lang=apl inline>⍲</syntaxhighlight> ||                       || [[Nand]]
| <syntaxhighlight lang=apl inline>⍲</syntaxhighlight> ||                               || [[Nand]]
|-
|-
| <syntaxhighlight lang=apl inline>⍱</syntaxhighlight> ||                       || [[Nor]]
| <syntaxhighlight lang=apl inline>⍱</syntaxhighlight> ||                               || [[Nor]]
|-
|-
| <syntaxhighlight lang=apl inline>~</syntaxhighlight> || [[Not]]               || See [[#Miscellaneous|Miscellaneous]]
| <syntaxhighlight lang=apl inline>~</syntaxhighlight> || [[Not]]                       ||
|-
|-
| <syntaxhighlight lang=apl inline>?</syntaxhighlight> || [[Roll]]               || See [[#Non-Scalar|Non-scalar]]
| <syntaxhighlight lang=apl inline>?</syntaxhighlight> || [[Roll]]                       || See [[#Non-Scalar|Non-scalar]]
|}
 
==== Non-scalar ====
 
{| class=wikitable
! Glyph                          !! Rank !! Monadic              !! Ranks !! Dyadic
|-
| <syntaxhighlight lang=apl inline>⌹</syntaxhighlight> || 2 || [[Matrix inverse]]    || ∞ 2 || [[Matrix divide]]
|-
| <syntaxhighlight lang=apl inline>?</syntaxhighlight> ||  || See [[#Scalar|Scalar]] || * * || [[Deal]]
|-
| <syntaxhighlight lang=apl inline>⊤</syntaxhighlight> ||  ||                        || ∞ ∞ || [[Encode]]
|-
| <syntaxhighlight lang=apl inline>⊥</syntaxhighlight> ||  ||                        || ∞ ∞ || [[Decode]]
|}
 
=== Relational ===
 
{| class=wikitable
! Glyph                          !! Rank !! Monadic                            !! Ranks !! Dyadic
|-
| <syntaxhighlight lang=apl inline>=</syntaxhighlight> ||  || See [[#Miscellaneous|Miscellaneous]] || 0 0 || [[Equals]]
|-
| <syntaxhighlight lang=apl inline>≠</syntaxhighlight> ||  || See [[#Miscellaneous|Miscellaneous]] || 0 0 || [[Not Equals]]
|-
| <syntaxhighlight lang=apl inline><</syntaxhighlight> ||  || See [[#Structural|Structural]]      || 0 0 || [[Less Than]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                      || 0 0 || [[Less Than or Equal]]
| <syntaxhighlight lang=apl inline>=</syntaxhighlight> ||                               || [[Equals]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                      || 0 0 || [[Greater Than or Equal]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                               || [[Not Equals]]
|-
|-
| <syntaxhighlight lang=apl inline>></syntaxhighlight> ||  || See [[#Structural|Structural]]       || 0 0 || [[Greater Than]]
| <syntaxhighlight lang=apl inline><</syntaxhighlight> || See [[#Non-Scalar|Non-scalar]] || [[Less Than]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                      || ∞ ∞ || [[Match]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                               || [[Less Than or Equal]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                      || 0 ∞ || [[Membership]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                               || [[Greater Than or Equal]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                      || ∞ ∞ || [[Find]]
| <syntaxhighlight lang=apl inline>></syntaxhighlight> || See [[#Non-Scalar|Non-scalar]] || [[Greater Than]]
|}
|}


=== Indexing ===
=== Non-scalar ===


{| class=wikitable
{| class=wikitable
! Glyph                          !! Rank !! Monadic                           !! Ranks !! Dyadic
! Glyph                          !! Rank !! Monadic             !! Ranks !! Dyadic
|-
|-
| <syntaxhighlight lang=apl inline>@</syntaxhighlight> ||   || See [[#Miscellaneous|Miscellaneous]] || 0 ∞ || [[Squad Index|From]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || 2 || [[Matrix inverse]]             || ∞ 2 || [[Matrix divide]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || 1 || [[Index Generator|Count]]           || 1 0 || [[Index Of]]
| <syntaxhighlight lang=apl inline>?</syntaxhighlight> ||   || See [[#Scalar|Scalar]]         || * * || [[Deal]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||  ||                                     || ∞ ∞ || [[Indices of Match|Index]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||  ||                                 || ∞ ∞ || [[Encode]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || || Numeric [[Grade up]]                || ∞ ∞ || Character [[Grade up]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                 || ∞ ∞ || [[Decode]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || || Numeric [[Grade down]]              || ∞ ∞ || Character [[Grade down]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                 || ∞ ∞ || [[Match]]
|}
 
=== Structural ===
 
{| class=wikitable
! Glyph                          !! Rank !! Monadic                                !! Ranks !! Dyadic
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || [[Shape|Shape of]]                        || 1 ∞ || [[Reshape]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                 || 0 ∞ || [[Membership]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   || See [[#Miscellaneous|Miscellaneous]]     || 1 || [[Take]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || 1 || [[Index Generator|Count]]       || 1 0 || [[Index Of]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || [[Raze]]                                 || 1 ∞ || [[Drop]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || Numeric [[Grade up]]           || ∞ || Character [[Grade up]]
|-
|-
| <syntaxhighlight lang=apl inline><</syntaxhighlight> || ∞ || [[Enclose]]/Box                          ||     || See [[#Relational|Relational]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || Numeric [[Grade down]]         || ∞ ∞ || Character [[Grade down]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || [[Enclose if simple|Conditional Enclose]] || ∞ || [[Link]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || [[Shape|Shape of]]             || 1 ∞ || [[Reshape]]
|-
|-
| <syntaxhighlight lang=apl inline>></syntaxhighlight> || 0 || [[Disclose]]/Open                        ||     || See [[#Relational|Relational]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                 || 1 ∞ || [[Take]]
|-
|-
| <syntaxhighlight lang=apl inline>,</syntaxhighlight> || || [[Ravel]]                                 || ∞ || [[Catenate]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                || 1 ∞ || [[Drop]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || [[Table]]                                 || ∞ ∞ || [[Catenate First|Catenate-Down]]
| <syntaxhighlight lang=apl inline><</syntaxhighlight> || ∞ || [[Enclose]]/Box                ||     || See [[#Scalar|Scalar]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || 1 || [[Reverse]]                              || 0 1 || [[Rotate]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||   ||                                 || ∞ ∞ || [[Link]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || || [[Reverse First|Reverse-Down]]           || ∞ ∞ || [[Rotate First|Rotate-Down]]
| <syntaxhighlight lang=apl inline>></syntaxhighlight> || 0 || [[Disclose]]/Open              ||     || See [[#Scalar|Scalar]]
|-
| <syntaxhighlight lang=apl inline>⍉</syntaxhighlight> || || Monadic [[Transpose]]                    || 0 ∞ || Dyadic [[Transpose]]
|}
 
=== Miscellaneous ===
 
{| class=wikitable
! Glyph                          !! Rank !! Monadic                !! Ranks !! Dyadic
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || [[Stop]]                 || ∞ ∞ || [[Left Identity|Left]]
| <syntaxhighlight lang=apl inline>,</syntaxhighlight> || ∞ || [[Ravel]]                       || ∞ ∞ || [[Catenate]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || [[Identity|Pass]]         || ∞ ∞ || [[Right Identity|Right]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || [[Table]]                       || ∞ ∞ || [[Catenate First|Catenate-Down]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || || [[Nubsieve]]             ||     || See [[#Relational|Relational]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || 1 || [[Reverse]]                     || 0 1 || [[Rotate]]
|-
|-
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || [[Nub]]                   ||     || See [[#Structural|Structural]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || [[Reverse First|Reverse-Down]] || ∞ ∞ || [[Rotate First|Rotate-Down]]
|-
|-
| <syntaxhighlight lang=apl inline>=</syntaxhighlight> || ∞ || [[Nubin]]                 ||     || See [[#Relational|Relational]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || ∞ || Monadic [[Transpose]]           || 0 ∞ || Dyadic [[Transpose]]
|-
|-
| <syntaxhighlight lang=apl inline>~</syntaxhighlight> ||   || See [[#Scalar|Scalar]]   || ∞ ∞ || [[Without|Less]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || || [[Stop]]                       || ∞ ∞ || [[Left Identity|Left]]
|-
|-
| <syntaxhighlight lang=apl inline>@</syntaxhighlight> || 1 || [[Cartesian Product|All]] ||     || See [[#Indexing|Indexing]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || || [[Identity|Pass]]               || ∞ ∞ || [[Right Identity|Right]]
|-
|-
| <syntaxhighlight lang=apl inline>⍕</syntaxhighlight> || ∞ || [[Monadic Format]]       || * ∞ || [[Dyadic Format]]
| <syntaxhighlight lang=apl inline>⍕</syntaxhighlight> || ∞ || [[Monadic Format]]             || * ∞ || [[Dyadic Format]]
|-
|-
| <syntaxhighlight lang=apl inline>⍎</syntaxhighlight> || * || [[Execute]]               ||    ||
| <syntaxhighlight lang=apl inline>⍎</syntaxhighlight> || * || [[Execute]]                     ||    ||
|}
|}


Navigation menu