APLX: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
(logo)
m (Text replacement - "<source" to "<syntaxhighlight")
Line 34: Line 34:
! Glyph                              !! Monadic              !! Axis !! Dyadic                                !! Axis
! Glyph                              !! Monadic              !! Axis !! Dyadic                                !! Axis
|-
|-
| <source lang=apl inline>+</source> || [[Conjugate]]        ||      || [[Add]]                              || vec
| <syntaxhighlight lang=apl inline>+</source> || [[Conjugate]]        ||      || [[Add]]                              || vec
|-
|-
| <source lang=apl inline>-</source> || [[Negate]]            ||      || [[Subtract]]                          || vec
| <syntaxhighlight lang=apl inline>-</source> || [[Negate]]            ||      || [[Subtract]]                          || vec
|-
|-
| <source lang=apl inline>×</source> || [[Sign of]]          ||      || [[Multiply]]                          || vec
| <syntaxhighlight lang=apl inline>×</source> || [[Sign of]]          ||      || [[Multiply]]                          || vec
|-
|-
| <source lang=apl inline>÷</source> || [[Reciprocal]]        ||      || [[Divide]]                            || vec
| <syntaxhighlight lang=apl inline>÷</source> || [[Reciprocal]]        ||      || [[Divide]]                            || vec
|-
|-
| <source lang=apl inline>⌈</source> || [[Ceiling]]          ||      || [[Maximum|Greater of]]                || vec
| <syntaxhighlight lang=apl inline>⌈</source> || [[Ceiling]]          ||      || [[Maximum|Greater of]]                || vec
|-
|-
| <source lang=apl inline>⌊</source> || [[Floor]]            ||      || [[Minimum|Lesser of]]                || vec
| <syntaxhighlight lang=apl inline>⌊</source> || [[Floor]]            ||      || [[Minimum|Lesser of]]                || vec
|-
|-
| <source lang=apl inline>|</source> || [[Absolute value]]    ||      || [[Residue]]                          || vec
| <syntaxhighlight lang=apl inline>|</source> || [[Absolute value]]    ||      || [[Residue]]                          || vec
|-
|-
| <source lang=apl inline>⍳</source> || [[Index list]]        ||      || [[Index of]]                          ||
| <syntaxhighlight lang=apl inline>⍳</source> || [[Index list]]        ||      || [[Index of]]                          ||
|-
|-
| <source lang=apl inline>?</source> || [[Roll]]              ||      || [[Deal]]                              ||
| <syntaxhighlight lang=apl inline>?</source> || [[Roll]]              ||      || [[Deal]]                              ||
|-
|-
| <source lang=apl inline>*</source> || [[Exponential]]      ||      || [[Power function|To the power of]]    || vec
| <syntaxhighlight lang=apl inline>*</source> || [[Exponential]]      ||      || [[Power function|To the power of]]    || vec
|-
|-
| <source lang=apl inline>⍟</source> || [[Natural log]]      ||      || [[Logarithm|Log to the base]]        || vec
| <syntaxhighlight lang=apl inline>⍟</source> || [[Natural log]]      ||      || [[Logarithm|Log to the base]]        || vec
|-
|-
| <source lang=apl inline>○</source> || [[Pi times]]          ||      || [[Circle function|Circular and Hyperbolic functions]] || vec
| <syntaxhighlight lang=apl inline>○</source> || [[Pi times]]          ||      || [[Circle function|Circular and Hyperbolic functions]] || vec
|-
|-
| <source lang=apl inline>!</source> || [[Factorial]]        ||      || [[Binomial]]                          || vec
| <syntaxhighlight lang=apl inline>!</source> || [[Factorial]]        ||      || [[Binomial]]                          || vec
|-
|-
| <source lang=apl inline>⌹</source> || [[Matrix inverse]]    ||      || [[Matrix divide]]                    ||
| <syntaxhighlight lang=apl inline>⌹</source> || [[Matrix inverse]]    ||      || [[Matrix divide]]                    ||
|-
|-
| <source lang=apl inline><</source> ||                      ||      || [[Less than]]                        || vec
| <syntaxhighlight lang=apl inline><</source> ||                      ||      || [[Less than]]                        || vec
|-
|-
| <source lang=apl inline>≤</source> ||                      ||      || [[Less than or equal]]                || vec
| <syntaxhighlight lang=apl inline>≤</source> ||                      ||      || [[Less than or equal]]                || vec
|-
|-
| <source lang=apl inline>=</source> ||                      ||      || [[Equal]]                            || vec
| <syntaxhighlight lang=apl inline>=</source> ||                      ||      || [[Equal]]                            || vec
|-
|-
| <source lang=apl inline>≥</source> ||                      ||      || [[Greater than or equal]]            || vec
| <syntaxhighlight lang=apl inline>≥</source> ||                      ||      || [[Greater than or equal]]            || vec
|-
|-
| <source lang=apl inline>></source> ||                      ||      || [[Greater than]]                      || vec
| <syntaxhighlight lang=apl inline>></source> ||                      ||      || [[Greater than]]                      || vec
|-
|-
| <source lang=apl inline>≠</source> ||                      ||      || [[Not equal]]                        || vec
| <syntaxhighlight lang=apl inline>≠</source> ||                      ||      || [[Not equal]]                        || vec
|-
|-
| <source lang=apl inline>≡</source> || [[Depth]]            ||      || [[Match]]                            ||
| <syntaxhighlight lang=apl inline>≡</source> || [[Depth]]            ||      || [[Match]]                            ||
|-
|-
| <source lang=apl inline>≢</source> ||                      ||      || [[Not Match]]                        ||
| <syntaxhighlight lang=apl inline>≢</source> ||                      ||      || [[Not Match]]                        ||
|-
|-
| <source lang=apl inline>∊</source> || [[Enlist]]            ||      || [[Membership]]                        ||
| <syntaxhighlight lang=apl inline>∊</source> || [[Enlist]]            ||      || [[Membership]]                        ||
|-
|-
| <source lang=apl inline>⍷</source> ||                      ||      || [[Find]]                              ||
| <syntaxhighlight lang=apl inline>⍷</source> ||                      ||      || [[Find]]                              ||
|-
|-
| <source lang=apl inline>∪</source> || [[Unique]]            ||      || [[Union]]                            ||
| <syntaxhighlight lang=apl inline>∪</source> || [[Unique]]            ||      || [[Union]]                            ||
|-
|-
| <source lang=apl inline>∩</source> ||                      ||      || [[Intersection]]                      ||
| <syntaxhighlight lang=apl inline>∩</source> ||                      ||      || [[Intersection]]                      ||
|-
|-
| <source lang=apl inline>~</source> || [[Not]]              ||      || [[Without]]                          ||
| <syntaxhighlight lang=apl inline>~</source> || [[Not]]              ||      || [[Without]]                          ||
|-
|-
| <source lang=apl inline>∨</source> ||                      ||      || [[Or]]                                ||
| <syntaxhighlight lang=apl inline>∨</source> ||                      ||      || [[Or]]                                ||
|-
|-
| <source lang=apl inline>^</source> ||                      ||      || [[And]]                              ||
| <syntaxhighlight lang=apl inline>^</source> ||                      ||      || [[And]]                              ||
|-
|-
| <source lang=apl inline>⍱</source> ||                      ||      || [[Nor]]                              ||
| <syntaxhighlight lang=apl inline>⍱</source> ||                      ||      || [[Nor]]                              ||
|-
|-
| <source lang=apl inline>⍲</source> ||                      ||      || [[Nand]]                              ||
| <syntaxhighlight lang=apl inline>⍲</source> ||                      ||      || [[Nand]]                              ||
|-
|-
| <source lang=apl inline>⍴</source> || [[Shape|Shape of]]    ||      || [[Reshape]]                          ||
| <syntaxhighlight lang=apl inline>⍴</source> || [[Shape|Shape of]]    ||      || [[Reshape]]                          ||
|-
|-
| <source lang=apl inline>,</source> || [[Ravel]]        || vec,frac || [[Catenate|Catenate, Laminate]]      ||
| <syntaxhighlight lang=apl inline>,</source> || [[Ravel]]        || vec,frac || [[Catenate|Catenate, Laminate]]      ||
|-
|-
| <source lang=apl inline>⍪</source> ||                      ||      || [[Catenate First|1st axis catenate]]  ||
| <syntaxhighlight lang=apl inline>⍪</source> ||                      ||      || [[Catenate First|1st axis catenate]]  ||
|-
|-
| <source lang=apl inline>⌽</source> || [[Reverse]]          || scal || [[Rotate]]                            || scal
| <syntaxhighlight lang=apl inline>⌽</source> || [[Reverse]]          || scal || [[Rotate]]                            || scal
|-
|-
| <source lang=apl inline>⊖</source> || [[Reverse First]]    || scal || [[Rotate First|1st axis rotate]]      || scal
| <syntaxhighlight lang=apl inline>⊖</source> || [[Reverse First]]    || scal || [[Rotate First|1st axis rotate]]      || scal
|-
|-
| <source lang=apl inline>⍉</source> ||colspan=4| [[Transpose]]
| <syntaxhighlight lang=apl inline>⍉</source> ||colspan=4| [[Transpose]]
|-
|-
| <source lang=apl inline>↑</source> || [[First]]            ||      || [[Take]]                              || vec
| <syntaxhighlight lang=apl inline>↑</source> || [[First]]            ||      || [[Take]]                              || vec
|-
|-
| <source lang=apl inline>↓</source> ||                      ||      || [[Drop]]                              || vec
| <syntaxhighlight lang=apl inline>↓</source> ||                      ||      || [[Drop]]                              || vec
|-
|-
| <source lang=apl inline>⊂</source> || [[Enclose]]          || vec  || [[Partition]]                        || scal
| <syntaxhighlight lang=apl inline>⊂</source> || [[Enclose]]          || vec  || [[Partition]]                        || scal
|-
|-
| <source lang=apl inline>⊃</source> || [[Disclose]]          || vec  || [[Pick]]                              ||
| <syntaxhighlight lang=apl inline>⊃</source> || [[Disclose]]          || vec  || [[Pick]]                              ||
|-
|-
| <source lang=apl inline>⌷</source> ||                      ||      || [[Squad Index|Index]]                || vec
| <syntaxhighlight lang=apl inline>⌷</source> ||                      ||      || [[Squad Index|Index]]                || vec
|-
|-
| <source lang=apl inline>⍋</source> ||colspan=4| [[Grade up]]
| <syntaxhighlight lang=apl inline>⍋</source> ||colspan=4| [[Grade up]]
|-
|-
| <source lang=apl inline>⍒</source> ||colspan=4| [[Grade down]]
| <syntaxhighlight lang=apl inline>⍒</source> ||colspan=4| [[Grade down]]
|-
|-
| <source lang=apl inline>⊤</source> ||                      ||      || [[Encode]]                            ||
| <syntaxhighlight lang=apl inline>⊤</source> ||                      ||      || [[Encode]]                            ||
|-
|-
| <source lang=apl inline>⊥</source> ||                      ||      || [[Decode]]                            ||
| <syntaxhighlight lang=apl inline>⊥</source> ||                      ||      || [[Decode]]                            ||
|-
|-
| <source lang=apl inline>⍺</source> ||                      ||      || Picture format                        ||
| <syntaxhighlight lang=apl inline>⍺</source> ||                      ||      || Picture format                        ||
|-
|-
| <source lang=apl inline>⍕</source> || [[Format]]            ||      || [[Dyadic format|Format]] by specification or by example ||
| <syntaxhighlight lang=apl inline>⍕</source> || [[Format]]            ||      || [[Dyadic format|Format]] by specification or by example ||
|-
|-
| <source lang=apl inline>⍎</source> ||                      ||      || [[Execute]]                          ||
| <syntaxhighlight lang=apl inline>⍎</source> ||                      ||      || [[Execute]]                          ||
|-
|-
| <source lang=apl inline>⊣</source> || [[Stop]]              ||      || [[Left Identity|Left]]                ||
| <syntaxhighlight lang=apl inline>⊣</source> || [[Stop]]              ||      || [[Left Identity|Left]]                ||
|-
|-
| <source lang=apl inline>⊢</source> || [[Identity|Pass]]    ||      || [[Right Identity|Right]]              ||
| <syntaxhighlight lang=apl inline>⊢</source> || [[Identity|Pass]]    ||      || [[Right Identity|Right]]              ||
|-
|-
| <source lang=apl inline>/</source> ||                      ||      || [[Compress]], [[Replicate]]          || scal
| <syntaxhighlight lang=apl inline>/</source> ||                      ||      || [[Compress]], [[Replicate]]          || scal
|-
|-
| <source lang=apl inline>⌿</source> ||                      ||      || [[Replicate First|1st axis compress/replicate]] || scal
| <syntaxhighlight lang=apl inline>⌿</source> ||                      ||      || [[Replicate First|1st axis compress/replicate]] || scal
|-
|-
| <source lang=apl inline>\</source> ||                      ||      || [[Expand]]                            || scal
| <syntaxhighlight lang=apl inline>\</source> ||                      ||      || [[Expand]]                            || scal
|-
|-
| <source lang=apl inline>⍀</source> ||                      ||      || [[Expand First|1st axis expand]]      || scal
| <syntaxhighlight lang=apl inline>⍀</source> ||                      ||      || [[Expand First|1st axis expand]]      || scal
|}
|}


Line 152: Line 152:
! Glyph          !! Valence !! Monadic call                    !! Dyadic call
! Glyph          !! Valence !! Monadic call                    !! Dyadic call
|-
|-
| <source lang=apl inline>/</source>  || Monadic || [[Reduce]]                      || [[N-wise Reduce]]
| <syntaxhighlight lang=apl inline>/</source>  || Monadic || [[Reduce]]                      || [[N-wise Reduce]]
|-
|-
| <source lang=apl inline>⌿</source>  || Monadic || [[Reduce First|1st axis reduce]] || [[N-wise Reduce first]]
| <syntaxhighlight lang=apl inline>⌿</source>  || Monadic || [[Reduce First|1st axis reduce]] || [[N-wise Reduce first]]
|-
|-
| <source lang=apl inline>\</source>  || Monadic || [[Scan]]                        ||
| <syntaxhighlight lang=apl inline>\</source>  || Monadic || [[Scan]]                        ||
|-
|-
| <source lang=apl inline>⍀</source>  || Monadic || [[Scan First|1st axis scan]]    ||
| <syntaxhighlight lang=apl inline>⍀</source>  || Monadic || [[Scan First|1st axis scan]]    ||
|-
|-
| <source lang=apl inline>.</source>  || Dyadic  ||                                  || [[Inner product]]
| <syntaxhighlight lang=apl inline>.</source>  || Dyadic  ||                                  || [[Inner product]]
|-
|-
| <source lang=apl inline>∘.</source> || Monadic ||                                  || [[Outer product]]
| <syntaxhighlight lang=apl inline>∘.</source> || Monadic ||                                  || [[Outer product]]
|-
|-
| <source lang=apl inline>¨</source>  || Monadic ||colspan=2| [[Each]]
| <syntaxhighlight lang=apl inline>¨</source>  || Monadic ||colspan=2| [[Each]]
|}
|}



Revision as of 21:02, 10 September 2022

APLX was a cross-platform dialect of the programming language APL, created by British company MicroAPL Ltd., as a successor to their APL.68000 product.

APLX is intended for uses such as financial planning, market research, statistics, management information, and various kinds of scientific and engineering work. APLX is based on IBM's APL2, but includes several extensions. It is available on Microsoft Windows, Linux, and macOS. Though APLX keeps APL's extended character set, APLX is a bit more verbose, due to the prevalence of system functions with long names, and the use of structured-control keywords. The use of explicit loops is a major deviation from earlier APL versions and derivatives.

Effective July 11, 2016, MicroAPL withdrew APLX from commercial sale. British firm Dyalog Ltd., authors of Dyalog APL, began hosting the APLX Archive website including the download area and documentation.

Primitives

Functions

Glyph Monadic Axis Dyadic Axis
<syntaxhighlight lang=apl inline>+</source> Conjugate Add vec
<syntaxhighlight lang=apl inline>-</source> Negate Subtract vec
<syntaxhighlight lang=apl inline>×</source> Sign of Multiply vec
<syntaxhighlight lang=apl inline>÷</source> Reciprocal Divide vec
<syntaxhighlight lang=apl inline>⌈</source> Ceiling Greater of vec
<syntaxhighlight lang=apl inline>⌊</source> Floor Lesser of vec
</source> Absolute value Residue vec
<syntaxhighlight lang=apl inline>⍳</source> Index list Index of
<syntaxhighlight lang=apl inline>?</source> Roll Deal
<syntaxhighlight lang=apl inline>*</source> Exponential To the power of vec
<syntaxhighlight lang=apl inline>⍟</source> Natural log Log to the base vec
<syntaxhighlight lang=apl inline>○</source> Pi times Circular and Hyperbolic functions vec
<syntaxhighlight lang=apl inline>!</source> Factorial Binomial vec
<syntaxhighlight lang=apl inline>⌹</source> Matrix inverse Matrix divide
<syntaxhighlight lang=apl inline><</source> Less than vec
<syntaxhighlight lang=apl inline>≤</source> Less than or equal vec
<syntaxhighlight lang=apl inline>=</source> Equal vec
<syntaxhighlight lang=apl inline>≥</source> Greater than or equal vec
<syntaxhighlight lang=apl inline>></source> Greater than vec
<syntaxhighlight lang=apl inline>≠</source> Not equal vec
<syntaxhighlight lang=apl inline>≡</source> Depth Match
<syntaxhighlight lang=apl inline>≢</source> Not Match
<syntaxhighlight lang=apl inline>∊</source> Enlist Membership
<syntaxhighlight lang=apl inline>⍷</source> Find
<syntaxhighlight lang=apl inline>∪</source> Unique Union
<syntaxhighlight lang=apl inline>∩</source> Intersection
<syntaxhighlight lang=apl inline>~</source> Not Without
<syntaxhighlight lang=apl inline>∨</source> Or
<syntaxhighlight lang=apl inline>^</source> And
<syntaxhighlight lang=apl inline>⍱</source> Nor
<syntaxhighlight lang=apl inline>⍲</source> Nand
<syntaxhighlight lang=apl inline>⍴</source> Shape of Reshape
<syntaxhighlight lang=apl inline>,</source> Ravel vec,frac Catenate, Laminate
<syntaxhighlight lang=apl inline>⍪</source> 1st axis catenate
<syntaxhighlight lang=apl inline>⌽</source> Reverse scal Rotate scal
<syntaxhighlight lang=apl inline>⊖</source> Reverse First scal 1st axis rotate scal
<syntaxhighlight lang=apl inline>⍉</source> Transpose
<syntaxhighlight lang=apl inline>↑</source> First Take vec
<syntaxhighlight lang=apl inline>↓</source> Drop vec
<syntaxhighlight lang=apl inline>⊂</source> Enclose vec Partition scal
<syntaxhighlight lang=apl inline>⊃</source> Disclose vec Pick
<syntaxhighlight lang=apl inline>⌷</source> Index vec
<syntaxhighlight lang=apl inline>⍋</source> Grade up
<syntaxhighlight lang=apl inline>⍒</source> Grade down
<syntaxhighlight lang=apl inline>⊤</source> Encode
<syntaxhighlight lang=apl inline>⊥</source> Decode
<syntaxhighlight lang=apl inline>⍺</source> Picture format
<syntaxhighlight lang=apl inline>⍕</source> Format Format by specification or by example
<syntaxhighlight lang=apl inline>⍎</source> Execute
<syntaxhighlight lang=apl inline>⊣</source> Stop Left
<syntaxhighlight lang=apl inline>⊢</source> Pass Right
<syntaxhighlight lang=apl inline>/</source> Compress, Replicate scal
<syntaxhighlight lang=apl inline>⌿</source> 1st axis compress/replicate scal
<syntaxhighlight lang=apl inline>\</source> Expand scal
<syntaxhighlight lang=apl inline>⍀</source> 1st axis expand scal

In addition, a few primitives for component file operations were taken from or inspired by APL/700.

Operators

Glyph Valence Monadic call Dyadic call
<syntaxhighlight lang=apl inline>/</source> Monadic Reduce N-wise Reduce
<syntaxhighlight lang=apl inline>⌿</source> Monadic 1st axis reduce N-wise Reduce first
<syntaxhighlight lang=apl inline>\</source> Monadic Scan
<syntaxhighlight lang=apl inline>⍀</source> Monadic 1st axis scan
<syntaxhighlight lang=apl inline>.</source> Dyadic Inner product
<syntaxhighlight lang=apl inline>∘.</source> Monadic Outer product
<syntaxhighlight lang=apl inline>¨</source> Monadic Each

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