SAX: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
m (Text replacement - "</source>" to "</syntaxhighlight>")
Tags: Mobile edit Mobile web edit
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox array language
{{Infobox array language
| logo                    = [[File:Sharp APL logo.png]]
| array model              = [[Flat array model|flat]] with [[Box|boxes]]
| array model              = [[Flat array model|flat]] with [[Box|boxes]]
| index origin            = 0 or 1
| index origin            = 0 or 1
| function styles          = [[defined functions]], some [[tacit]] capabilities
| function styles          = [[defined function]]s, some [[tacit]] capabilities
| numeric types            = 64-bit float
| numeric types            = 64-bit float
| unicode support          = none
| unicode support          = none
Line 10: Line 11:
| platforms                = S/390, x86
| platforms                = S/390, x86
| operating systems        = UNIX (AIX, Solaris), Linux
| operating systems        = UNIX (AIX, Solaris), Linux
| implementation language  = [[wikipedia:C (programming language)|C]]
| license                  = Free for personal use / Proprietary commercial software
| license                  = Free for personal use / Proprietary commercial software
| download                = [https://github.com/abrudz/sax GitHub]
| developer                = [[Soliton Associates]]
| developer                = [[Soliton Associates]]
| influenced by            = [[APL*PLUS]]
| influenced by            = [[SHARP APL]]
| influenced              = [[Dyalog APL]]
| influenced              = [[J]]
| documentation            = [https://abrudz.github.io/SAX2/SAX61.pdf PDF]
| documentation            = [https://abrudz.github.io/SAX2/SAX61.pdf PDF]
| file ext                = .sw, .sf
| file ext                = .sw, .sf
Line 30: Line 33:
! Glyph                              !! Monadic                !! Dyadic
! Glyph                              !! Monadic                !! Dyadic
|-
|-
| <source lang=apl inline>+</source> || [[Conjugate]]/Identity || [[Addition]]
| <syntaxhighlight lang=apl inline>+</syntaxhighlight> || [[Conjugate]]/Identity || [[Addition]]
|-
|-
| <source lang=apl inline>-</source> || [[Negate]]            || [[Subtraction]]
| <syntaxhighlight lang=apl inline>-</syntaxhighlight> || [[Negate]]            || [[Subtraction]]
|-
|-
| <source lang=apl inline>×</source> || [[Signum]]            || [[Multiplication]]
| <syntaxhighlight lang=apl inline>×</syntaxhighlight> || [[Signum]]            || [[Multiplication]]
|-
|-
| <source lang=apl inline>÷</source> || [[Reciprocal]]        || [[Division]]
| <syntaxhighlight lang=apl inline>÷</syntaxhighlight> || [[Reciprocal]]        || [[Division]]
|-
|-
| <source lang=apl inline>*</source> || [[Exponential]]        || [[Power function|Power]]
| <syntaxhighlight lang=apl inline>*</syntaxhighlight> || [[Exponential]]        || [[Power function|Power]]
|-
|-
| <source lang=apl inline>⍟</source> || [[Natural Logarithm]]  || [[Logarithm|Base-⍺ Logarithm]]
| <syntaxhighlight lang=apl inline>⍟</syntaxhighlight> || [[Natural Logarithm]]  || [[Logarithm|Base-⍺ Logarithm]]
|-
|-
| <source lang=apl inline>|</source> || [[Magnitude]]          || [[Residue]]
| <syntaxhighlight lang=apl inline>|</syntaxhighlight> || [[Magnitude]]          || [[Residue]]
|-
|-
| <source lang=apl inline>!</source> || [[Factorial]]          || Out-Of/[[Combinations]]
| <syntaxhighlight lang=apl inline>!</syntaxhighlight> || [[Factorial]]          || Out-Of/[[Combinations]]
|-
|-
| <source lang=apl inline>⌊</source> || [[Floor]]              || [[Minimum]]
| <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || [[Floor]]              || [[Minimum]]
|-
|-
| <source lang=apl inline>⌈</source> || [[Ceiling]]            || [[Maximum]]
| <syntaxhighlight lang=apl inline>⌈</syntaxhighlight> || [[Ceiling]]            || [[Maximum]]
|-
|-
| <source lang=apl inline>○</source> || [[Pi Times]]          || [[Circle functions]]
| <syntaxhighlight lang=apl inline>○</syntaxhighlight> || [[Pi Times]]          || [[Circle functions]]
|-
|-
| <source lang=apl inline>∧</source> ||                        || [[And]]/Least Common Multiple (LCM)
| <syntaxhighlight lang=apl inline>∧</syntaxhighlight> ||                        || [[And]]/Least Common Multiple (LCM)
|-
|-
| <source lang=apl inline>∨</source> ||                        || [[Or]]/Greatest Common Divisor (GCD)
| <syntaxhighlight lang=apl inline>∨</syntaxhighlight> ||                        || [[Or]]/Greatest Common Divisor (GCD)
|-
|-
| <source lang=apl inline>⍲</source> ||                        || [[Nand]]
| <syntaxhighlight lang=apl inline>⍲</syntaxhighlight> ||                        || [[Nand]]
|-
|-
| <source lang=apl inline>⍱</source> ||                        || [[Nor]]
| <syntaxhighlight lang=apl inline>⍱</syntaxhighlight> ||                        || [[Nor]]
|-
|-
| <source lang=apl inline>~</source> || [[Not]]                || See [[#Miscellaneous|Miscellaneous]]
| <syntaxhighlight lang=apl inline>~</syntaxhighlight> || [[Not]]                || See [[#Miscellaneous|Miscellaneous]]
|-
|-
| <source lang=apl inline>?</source> || [[Roll]]              || See [[#Non-Scalar|Non-scalar]]
| <syntaxhighlight lang=apl inline>?</syntaxhighlight> || [[Roll]]              || See [[#Non-Scalar|Non-scalar]]
|}
|}


Line 70: Line 73:
! Glyph                          !! Rank !! Monadic              !! Ranks !! Dyadic
! Glyph                          !! Rank !! Monadic              !! Ranks !! Dyadic
|-
|-
| <source lang=apl inline>⌹</source> || 2 || [[Matrix inverse]]    || ∞ 2 || [[Matrix divide]]
| <syntaxhighlight lang=apl inline>⌹</syntaxhighlight> || 2 || [[Matrix inverse]]    || ∞ 2 || [[Matrix divide]]
|-
|-
| <source lang=apl inline>?</source> ||  || See [[#Scalar|Scalar]] || * * || [[Deal]]
| <syntaxhighlight lang=apl inline>?</syntaxhighlight> ||  || See [[#Scalar|Scalar]] || * * || [[Deal]]
|-
|-
| <source lang=apl inline>⊤</source> ||  ||                        || ∞ ∞ || [[Encode]]
| <syntaxhighlight lang=apl inline>⊤</syntaxhighlight> ||  ||                        || ∞ ∞ || [[Encode]]
|-
|-
| <source lang=apl inline>⊥</source> ||  ||                        || ∞ ∞ || [[Decode]]
| <syntaxhighlight lang=apl inline>⊥</syntaxhighlight> ||  ||                        || ∞ ∞ || [[Decode]]
|}
|}


Line 84: Line 87:
! Glyph                          !! Rank !! Monadic                            !! Ranks !! Dyadic
! Glyph                          !! Rank !! Monadic                            !! Ranks !! Dyadic
|-
|-
| <source lang=apl inline>=</source> ||  || See [[#Miscellaneous|Miscellaneous]] || 0 0 || [[Equals]]
| <syntaxhighlight lang=apl inline>=</syntaxhighlight> ||  || See [[#Miscellaneous|Miscellaneous]] || 0 0 || [[Equals]]
|-
|-
| <source lang=apl inline>≠</source> ||  || See [[#Miscellaneous|Miscellaneous]] || 0 0 || [[Not Equals]]
| <syntaxhighlight lang=apl inline>≠</syntaxhighlight> ||  || See [[#Miscellaneous|Miscellaneous]] || 0 0 || [[Not Equals]]
|-
|-
| <source lang=apl inline><</source> ||  || See [[#Structural|Structural]]      || 0 0 || [[Less Than]]
| <syntaxhighlight lang=apl inline><</syntaxhighlight> ||  || See [[#Structural|Structural]]      || 0 0 || [[Less Than]]
|-
|-
| <source lang=apl inline>≤</source> ||  ||                                      || 0 0 || [[Less Than or Equal]]
| <syntaxhighlight lang=apl inline>≤</syntaxhighlight> ||  ||                                      || 0 0 || [[Less Than or Equal]]
|-
|-
| <source lang=apl inline>≥</source> ||  ||                                      || 0 0 || [[Greater Than or Equal]]
| <syntaxhighlight lang=apl inline>≥</syntaxhighlight> ||  ||                                      || 0 0 || [[Greater Than or Equal]]
|-
|-
| <source lang=apl inline>></source> ||  || See [[#Structural|Structural]]      || 0 0 || [[Greater Than]]
| <syntaxhighlight lang=apl inline>></syntaxhighlight> ||  || See [[#Structural|Structural]]      || 0 0 || [[Greater Than]]
|-
|-
| <source lang=apl inline>≡</source> ||  ||                                      || ∞ ∞ || [[Match]]
| <syntaxhighlight lang=apl inline>≡</syntaxhighlight> ||  ||                                      || ∞ ∞ || [[Match]]
|-
|-
| <source lang=apl inline>∊</source> ||  ||                                      || 0 ∞ || [[Membership]]
| <syntaxhighlight lang=apl inline>∊</syntaxhighlight> ||  ||                                      || 0 ∞ || [[Membership]]
|-
|-
| <source lang=apl inline>⍷</source> ||  ||                                      || ∞ ∞ || [[Find]]
| <syntaxhighlight lang=apl inline>⍷</syntaxhighlight> ||  ||                                      || ∞ ∞ || [[Find]]
|}
|}


Line 108: Line 111:
! Glyph                          !! Rank !! Monadic                            !! Ranks !! Dyadic
! Glyph                          !! Rank !! Monadic                            !! Ranks !! Dyadic
|-
|-
| <source lang=apl inline>@</source> ||  || See [[#Miscellaneous|Miscellaneous]] || 0 ∞ || [[Squad Index|From]]
| <syntaxhighlight lang=apl inline>@</syntaxhighlight> ||  || See [[#Miscellaneous|Miscellaneous]] || 0 ∞ || [[Squad Index|From]]
|-
|-
| <source lang=apl inline>⍳</source> || 1 || [[Index Generator|Count]]            || 1 0 || [[Index Of]]
| <syntaxhighlight lang=apl inline>⍳</syntaxhighlight> || 1 || [[Index Generator|Count]]            || 1 0 || [[Index Of]]
|-
|-
| <source lang=apl inline>⍸</source> ||  ||                                      || ∞ ∞ || [[Indices of Match|Index]]
| <syntaxhighlight lang=apl inline>⍸</syntaxhighlight> ||  ||                                      || ∞ ∞ || [[Indices of Match|Index]]
|-
|-
| <source lang=apl inline>⍋</source> || ∞ || Numeric [[Grade up]]                || ∞ ∞ || Character [[Grade up]]
| <syntaxhighlight lang=apl inline>⍋</syntaxhighlight> || ∞ || Numeric [[Grade up]]                || ∞ ∞ || Character [[Grade up]]
|-
|-
| <source lang=apl inline>⍒</source> || ∞ || Numeric [[Grade down]]              || ∞ ∞ || Character [[Grade down]]
| <syntaxhighlight lang=apl inline>⍒</syntaxhighlight> || ∞ || Numeric [[Grade down]]              || ∞ ∞ || Character [[Grade down]]
|}
|}


Line 124: Line 127:
! Glyph                          !! Rank !! Monadic                                !! Ranks !! Dyadic
! Glyph                          !! Rank !! Monadic                                !! Ranks !! Dyadic
|-
|-
| <source lang=apl inline>⍴</source> || ∞ || [[Shape|Shape of]]                        || 1 ∞ || [[Reshape]]
| <syntaxhighlight lang=apl inline>⍴</syntaxhighlight> || ∞ || [[Shape|Shape of]]                        || 1 ∞ || [[Reshape]]
|-
|-
| <source lang=apl inline>↑</source> ||  || See [[#Miscellaneous|Miscellaneous]]      || 1 ∞ || [[Take]]
| <syntaxhighlight lang=apl inline>↑</syntaxhighlight> ||  || See [[#Miscellaneous|Miscellaneous]]      || 1 ∞ || [[Take]]
|-
|-
| <source lang=apl inline>↓</source> || ∞ || [[Raze]]                                  || 1 ∞ || [[Drop]]
| <syntaxhighlight lang=apl inline>↓</syntaxhighlight> || ∞ || [[Raze]]                                  || 1 ∞ || [[Drop]]
|-
|-
| <source lang=apl inline><</source> || ∞ || [[Enclose]]/Box                          ||    || See [[#Relational|Relational]]
| <syntaxhighlight lang=apl inline><</syntaxhighlight> || ∞ || [[Enclose]]/Box                          ||    || See [[#Relational|Relational]]
|-
|-
| <source lang=apl inline>⊃</source> || ∞ || [[Enclose if simple|Conditional Enclose]] || ∞ ∞ || [[Link]]
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || ∞ || [[Enclose if simple|Conditional Enclose]] || ∞ ∞ || [[Link]]
|-
|-
| <source lang=apl inline>></source> || 0 || [[Disclose]]/Open                        ||    || See [[#Relational|Relational]]
| <syntaxhighlight lang=apl inline>></syntaxhighlight> || 0 || [[Disclose]]/Open                        ||    || See [[#Relational|Relational]]
|-
|-
| <source lang=apl inline>,</source> || ∞ || [[Ravel]]                                || ∞ ∞ || [[Catenate]]
| <syntaxhighlight lang=apl inline>,</syntaxhighlight> || ∞ || [[Ravel]]                                || ∞ ∞ || [[Catenate]]
|-
|-
| <source lang=apl inline>⍪</source> || ∞ || [[Table]]                                || ∞ ∞ || [[Catenate First|Catenate-Down]]
| <syntaxhighlight lang=apl inline>⍪</syntaxhighlight> || ∞ || [[Table]]                                || ∞ ∞ || [[Catenate First|Catenate-Down]]
|-
|-
| <source lang=apl inline>⌽</source> || 1 || [[Reverse]]                              || 0 1 || [[Rotate]]
| <syntaxhighlight lang=apl inline>⌽</syntaxhighlight> || 1 || [[Reverse]]                              || 0 1 || [[Rotate]]
|-
|-
| <source lang=apl inline>⊖</source> || ∞ || [[Reverse First|Reverse-Down]]            || ∞ ∞ || [[Rotate First|Rotate-Down]]
| <syntaxhighlight lang=apl inline>⊖</syntaxhighlight> || ∞ || [[Reverse First|Reverse-Down]]            || ∞ ∞ || [[Rotate First|Rotate-Down]]
|-
|-
| <source lang=apl inline>⍉</source> || ∞ || Monadic [[Transpose]]                    || 0 ∞ || Dyadic [[Transpose]]
| <syntaxhighlight lang=apl inline>⍉</syntaxhighlight> || ∞ || Monadic [[Transpose]]                    || 0 ∞ || Dyadic [[Transpose]]
|}
|}


Line 152: Line 155:
! Glyph                          !! Rank !! Monadic                !! Ranks !! Dyadic
! Glyph                          !! Rank !! Monadic                !! Ranks !! Dyadic
|-
|-
| <source lang=apl inline>⊣</source> || ∞ || [[Stop]]                  || ∞ ∞ || [[Left Identity|Left]]
| <syntaxhighlight lang=apl inline>⊣</syntaxhighlight> || ∞ || [[Stop]]                  || ∞ ∞ || [[Left Identity|Left]]
|-
|-
| <source lang=apl inline>⊢</source> || ∞ || [[Identity|Pass]]        || ∞ ∞ || [[Right Identity|Right]]
| <syntaxhighlight lang=apl inline>⊢</syntaxhighlight> || ∞ || [[Identity|Pass]]        || ∞ ∞ || [[Right Identity|Right]]
|-
|-
| <source lang=apl inline>≠</source> || ∞ || [[Nubsieve]]              ||    || See [[#Relational|Relational]]
| <syntaxhighlight lang=apl inline>≠</syntaxhighlight> || ∞ || [[Nubsieve]]              ||    || See [[#Relational|Relational]]
|-
|-
| <source lang=apl inline>↑</source> || ∞ || [[Nub]]                  ||    || See [[#Structural|Structural]]
| <syntaxhighlight lang=apl inline>↑</syntaxhighlight> || ∞ || [[Nub]]                  ||    || See [[#Structural|Structural]]
|-
|-
| <source lang=apl inline>=</source> || ∞ || [[Nubin]]                ||    || See [[#Relational|Relational]]
| <syntaxhighlight lang=apl inline>=</syntaxhighlight> || ∞ || [[Nubin]]                ||    || See [[#Relational|Relational]]
|-
|-
| <source lang=apl inline>~</source> ||  || See [[#Scalar|Scalar]]    || ∞ ∞ || [[Without|Less]]
| <syntaxhighlight lang=apl inline>~</syntaxhighlight> ||  || See [[#Scalar|Scalar]]    || ∞ ∞ || [[Without|Less]]
|-
|-
| <source lang=apl inline>@</source> || 1 || [[Cartesian Product|All]] ||    || See [[#Indexing|Indexing]]
| <syntaxhighlight lang=apl inline>@</syntaxhighlight> || 1 || [[Cartesian Product|All]] ||    || See [[#Indexing|Indexing]]
|-
|-
| <source lang=apl inline>⍕</source> || ∞ || [[Monadic Format]]        || * ∞ || [[Dyadic Format]]
| <syntaxhighlight lang=apl inline>⍕</syntaxhighlight> || ∞ || [[Monadic Format]]        || * ∞ || [[Dyadic Format]]
|-
|-
| <source lang=apl inline>⍎</source> || * || [[Execute]]              ||    ||
| <syntaxhighlight lang=apl inline>⍎</syntaxhighlight> || * || [[Execute]]              ||    ||
|}
|}


Line 176: Line 179:
! Glyph !!colspan=2|Operands !!colspan=2|Ranks !! Monadic Call  !! Dyadic Call
! Glyph !!colspan=2|Operands !!colspan=2|Ranks !! Monadic Call  !! Dyadic Call
|-
|-
| <source lang=apl inline>/</source> ||                                    || <source lang=apl inline>f</source> || <source lang=apl inline>∞</source>  ||                                        || [[Reduce]]                      ||
| <syntaxhighlight lang=apl inline>/</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight>  ||                                        || [[Reduce]]                      ||
|-
|-
| <source lang=apl inline>⌿</source> ||                                    || <source lang=apl inline>f</source> || <source lang=apl inline>∞</source>  ||                                        || [[Reduce First|Reduce-down]]    ||
| <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight>  ||                                        || [[Reduce First|Reduce-down]]    ||
|-
|-
| <source lang=apl inline>\</source> ||                                    || <source lang=apl inline>f</source> || <source lang=apl inline>∞</source>  ||                                        || [[Scan]]                        ||
| <syntaxhighlight lang=apl inline>\</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight>  ||                                        || [[Scan]]                        ||
|-
|-
| <source lang=apl inline>⍀</source> ||                                    || <source lang=apl inline>f</source> || <source lang=apl inline>∞</source>  ||                                        || [[Scan First|Scan-down]]        ||
| <syntaxhighlight lang=apl inline>⍀</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight>  ||                                        || [[Scan First|Scan-down]]        ||
|-
|-
| <source lang=apl inline>/</source> ||                                    || <source lang=apl inline>m</source> || <source lang=apl inline>∞</source>  ||                                        || [[Replicate|Copy]]/[[Compress]] ||
| <syntaxhighlight lang=apl inline>/</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight>  ||                                        || [[Replicate|Copy]]/[[Compress]] ||
|-
|-
| <source lang=apl inline>⌿</source> ||                                    || <source lang=apl inline>m</source> || <source lang=apl inline>∞</source>  ||                                        || [[Replicate|Copy]]-down/[[Compress]]-down ||
| <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight>  ||                                        || [[Replicate|Copy]]-down/[[Compress]]-down ||
|-
|-
| <source lang=apl inline>\</source> ||                                    || <source lang=apl inline>m</source> || <source lang=apl inline>∞</source>  ||                                        || [[Expand]]                      ||
| <syntaxhighlight lang=apl inline>\</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight>  ||                                        || [[Expand]]                      ||
|-
|-
| <source lang=apl inline>⍀</source> ||                                    || <source lang=apl inline>m</source> || <source lang=apl inline>∞</source>  ||                                        || [[Expand First|Expand-down]]    ||
| <syntaxhighlight lang=apl inline>⍀</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight>  ||                                        || [[Expand First|Expand-down]]    ||
|-
|-
| <source lang=apl inline>⊂</source> ||                                    || <source lang=apl inline>f</source> || <source lang=apl inline>∞</source>  || <source lang=apl inline>rf lf</source> ||colspan=2| Swap
| <syntaxhighlight lang=apl inline>⊂</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight>  || <syntaxhighlight lang=apl inline>rf lf</syntaxhighlight> ||colspan=2| Swap
|-
|-
| <source lang=apl inline>&</source> ||                                    || <source lang=apl inline>f</source> || <source lang=apl inline>∞</source>  || <source lang=apl inline>∞  ∞</source>  ||colspan=2| Select
| <syntaxhighlight lang=apl inline>&</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight>  || <syntaxhighlight lang=apl inline>∞  ∞</syntaxhighlight>  ||colspan=2| Select
|-
|-
| <source lang=apl inline>⍤</source> || <source lang=apl inline>f</source> || <source lang=apl inline>g</source> || <source lang=apl inline>mg</source> || <source lang=apl inline>mg mg</source> ||colspan=2| On ([[close Over]])
| <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| On ([[close Over]])
|-
|-
| <source lang=apl inline>⍤</source> || <source lang=apl inline>f</source> || <source lang=apl inline>n</source> || <source lang=apl inline>n</source>  || <source lang=apl inline>n  n</source>  ||colspan=2| [[Rank operator|Rank]]
| <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>n</syntaxhighlight> || <syntaxhighlight lang=apl inline>n</syntaxhighlight>  || <syntaxhighlight lang=apl inline>n  n</syntaxhighlight>  ||colspan=2| [[Rank operator|Rank]]
|-
|-
| <source lang=apl inline>⍤</source> || <source lang=apl inline>m</source> || <source lang=apl inline>g</source> || <source lang=apl inline>mg</source> || <source lang=apl inline>mg mg</source> ||colspan=2| [[Cut operator|Cut]]
| <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| [[Cut operator|Cut]]
|-
|-
| <source lang=apl inline>⍥</source> || <source lang=apl inline>f</source> || <source lang=apl inline>g</source> || <source lang=apl inline>mg</source> || <source lang=apl inline>mg mg</source> ||colspan=2| Upon ([[close Atop]])
| <syntaxhighlight lang=apl inline>⍥</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| Upon ([[close Atop]])
|-
|-
| <source lang=apl inline>¨</source> || <source lang=apl inline>f</source> || <source lang=apl inline>g</source> || <source lang=apl inline>mg</source> || <source lang=apl inline>mg mg</source> ||colspan=2| [[close Under|Under]]
| <syntaxhighlight lang=apl inline>¨</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| [[close Under|Under]]
|-
|-
| <source lang=apl inline>¨</source> || <source lang=apl inline>m</source> || <source lang=apl inline>g</source> || <source lang=apl inline>mg</source> ||                                        ||rowspan="2"|With ([[Bind]])    ||
| <syntaxhighlight lang=apl inline>¨</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> ||                                        ||rowspan="2"|With ([[Bind]])    ||
|-
|-
| <source lang=apl inline>¨</source> || <source lang=apl inline>f</source> || <source lang=apl inline>n</source> || <source lang=apl inline>mf</source> ||                                        ||
| <syntaxhighlight lang=apl inline>¨</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>n</syntaxhighlight> || <syntaxhighlight lang=apl inline>mf</syntaxhighlight> ||                                        ||
|-
|-
| <source lang=apl inline>.</source> || <source lang=apl inline>f</source> || <source lang=apl inline>g</source> || <source lang=apl inline>2</source>  || <source lang=apl inline>∞  ∞</source>  || [[Alternant]]                  || [[Inner Product|Inner-product]]
| <syntaxhighlight lang=apl inline>.</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>2</syntaxhighlight>  || <syntaxhighlight lang=apl inline>∞  ∞</syntaxhighlight>  || [[Alternant]]                  || [[Inner Product|Inner-product]]
|-
|-
| <source lang=apl inline>.</source> || <source lang=apl inline>m</source> || <source lang=apl inline>g</source> ||                                    || <source lang=apl inline>∞  ∞</source>  ||                                || [[Tie]], [[Outer Product|Outer-product]]
| <syntaxhighlight lang=apl inline>.</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> ||                                    || <syntaxhighlight lang=apl inline>∞  ∞</syntaxhighlight>  ||                                || [[Tie]], [[Outer Product|Outer-product]]
|-
|-
| <source lang=apl inline>.</source> || <source lang=apl inline>f</source> || <source lang=apl inline>m</source> || <source lang=apl inline>mf</source> ||                                        || [[Ply]]                        ||
| <syntaxhighlight lang=apl inline>.</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>mf</syntaxhighlight> ||                                        || [[Ply]]                        ||
|}
|}


== External links ==
{{APL dialects}}[[Category:APL dialects]][[Category:Flat array languages]][[Category:Leading axis languages]]
 
[[wikipedia:I._P._Sharp_Associates|Wikipedia]]
 
{{APL dialects}}

Revision as of 22:14, 10 September 2022

SAX (SHARP APL for UNIX) was a version of SHARP APL offered by Soliton Associates. Notable features of SAX include function rank, the Rank operator, and leading axis theory, as well as relative comparison tolerance and close composition operators including Under.

Primitive functions

Arithmetic

Scalar

All scalar functions have rank zero.

Glyph Monadic Dyadic
+ Conjugate/Identity Addition
- Negate Subtraction
× Signum Multiplication
÷ Reciprocal Division
* Exponential Power
Natural Logarithm Base-⍺ Logarithm
| Magnitude Residue
! Factorial Out-Of/Combinations
Floor Minimum
Ceiling Maximum
Pi Times Circle functions
And/Least Common Multiple (LCM)
Or/Greatest Common Divisor (GCD)
Nand
Nor
~ Not See Miscellaneous
? Roll See Non-scalar

Non-scalar

Glyph Rank Monadic Ranks Dyadic
2 Matrix inverse ∞ 2 Matrix divide
? See Scalar * * Deal
∞ ∞ Encode
∞ ∞ Decode

Relational

Glyph Rank Monadic Ranks Dyadic
= See Miscellaneous 0 0 Equals
See Miscellaneous 0 0 Not Equals
< See Structural 0 0 Less Than
0 0 Less Than or Equal
0 0 Greater Than or Equal
> See Structural 0 0 Greater Than
∞ ∞ Match
0 ∞ Membership
∞ ∞ Find

Indexing

Glyph Rank Monadic Ranks Dyadic
@ See Miscellaneous 0 ∞ From
1 Count 1 0 Index Of
∞ ∞ Index
Numeric Grade up ∞ ∞ Character Grade up
Numeric Grade down ∞ ∞ Character Grade down

Structural

Glyph Rank Monadic Ranks Dyadic
Shape of 1 ∞ Reshape
See Miscellaneous 1 ∞ Take
Raze 1 ∞ Drop
< Enclose/Box See Relational
Conditional Enclose ∞ ∞ Link
> 0 Disclose/Open See Relational
, Ravel ∞ ∞ Catenate
Table ∞ ∞ Catenate-Down
1 Reverse 0 1 Rotate
Reverse-Down ∞ ∞ Rotate-Down
Monadic Transpose 0 ∞ Dyadic Transpose

Miscellaneous

Glyph Rank Monadic Ranks Dyadic
Stop ∞ ∞ Left
Pass ∞ ∞ Right
Nubsieve See Relational
Nub See Structural
= Nubin See Relational
~ See Scalar ∞ ∞ Less
@ 1 All See Indexing
Monadic Format * ∞ Dyadic Format
* Execute

Primitive Operators

Glyph Operands Ranks Monadic Call Dyadic Call
/ f Reduce
f Reduce-down
\ f Scan
f Scan-down
/ m Copy/Compress
m Copy-down/Compress-down
\ m Expand
m Expand-down
f rf lf Swap
& f ∞ ∞ Select
f g mg mg mg On (close Over)
f n n n n Rank
m g mg mg mg Cut
f g mg mg mg Upon (close Atop)
¨ f g mg mg mg Under
¨ m g mg With (Bind)
¨ f n mf
. f g 2 ∞ ∞ Alternant Inner-product
. m g ∞ ∞ Tie, Outer-product
. f m mf Ply


APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLDyalog APL Visiondzaima/APLGNU APLKapNARS2000Pometo
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