APLX: Difference between revisions

Jump to navigation Jump to search
3,220 bytes added ,  22:25, 10 September 2022
m
Text replacement - "</source>" to "</syntaxhighlight>"
Miraheze>Marshall
m (Text replacement - "</source>" to "</syntaxhighlight>")
Tags: Mobile edit Mobile web edit
(17 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Infobox array language
{{Infobox array language
| logo                    = [[File:APLX logo.png]]
| array model              = [[nested array model|nested]]
| array model              = [[nested array model|nested]]
| index origin            = 0 or 1
| index origin            = 0 or 1
| function styles          = [[tradfn]]
| function styles          = [[Defined function|defined]]
| numeric types            = floats
| numeric types            = floats
| unicode support          = no
| unicode support          = no
Line 9: Line 10:
| developer                = [[MicroAPL Ltd.]]
| developer                = [[MicroAPL Ltd.]]
| latest release version  = 5.1 / 2016
| latest release version  = 5.1 / 2016
| implementation languages = [https://en.wikipedia.org/wiki/C_(programming_language) C], [https://en.wikipedia.org/wiki/C%2B%2B C++]
| implementation languages = [[wikipedia:C_(programming_language)|C]], [[wikipedia:C++|C++]]
| platforms                = x86, x86_64
| platforms                = x86
| operating systems        = Windows, Linux, macOS
| operating systems        = Windows, Linux, macOS High Sierra and earlier
| license                  = Free / Proprietary software
| license                  = Free / Proprietary software
| website                  = [http://microapl.com/apl/ microapl.com/apl]
| website                  = [http://microapl.com/apl/ microapl.com/apl]
| forum                    = [https://www.tapatalk.com/groups/microapl/ Support forum for APLX]
| download                = [http://www.dyalog.com/aplx.htm dyalog.com/aplx.htm]
| download                = [http://www.dyalog.com/aplx.htm dyalog.com/aplx.htm]
| file ext                = .aws
| file ext                = .aws
| documentation            = [http://www.dyalog.com/aplx.htm#APLXDocs APLX Documentation]
| documentation            = [http://www.dyalog.com/aplx.htm#APLXDocs APLX Documentation]
| influenced by            = [[APL.68000]], [[APL2]]
| influenced by            = [[APL/700]], [[APL.68000]], [[APL2]]
}}
}}
'''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''' was a cross-platform dialect of the programming language APL, created by British company [[MicroAPL Ltd.]], as a successor to their [[APL.68000]] product.
Line 30: Line 32:


{| class=wikitable
{| class=wikitable
! Glyph                              !! Monadic              !! Dyadic
! Glyph                              !! Monadic              !! Axis !! Dyadic                               !! Axis
|-
|-
| <source lang=apl inline>+</source> || [[Conjugate]]        || [[Add]]
| <syntaxhighlight lang=apl inline>+</syntaxhighlight> || [[Conjugate]]        ||      || [[Add]]                               || vec
|-
|-
| <source lang=apl inline>-</source> || [[Negate]]            || [[Subtract]]
| <syntaxhighlight lang=apl inline>-</syntaxhighlight> || [[Negate]]            ||      || [[Subtract]]                         || vec
|-
|-
| <source lang=apl inline>×</source> || [[Sign of]]          || [[Multiply]]
| <syntaxhighlight lang=apl inline>×</syntaxhighlight> || [[Sign of]]          ||      || [[Multiply]]                         || vec
|-
|-
| <source lang=apl inline>÷</source> || [[Reciprocal]]        || [[Divide]]
| <syntaxhighlight lang=apl inline>÷</syntaxhighlight> || [[Reciprocal]]        ||      || [[Divide]]                           || vec
|-
|-
| <source lang=apl inline>⌈</source> || [[Ceiling]]          || [[Maximum|Greater of]]
| <syntaxhighlight lang=apl inline>⌈</syntaxhighlight> || [[Ceiling]]          ||      || [[Maximum|Greater of]]               || vec
|-
|-
| <source lang=apl inline>⌊</source> || [[Floor]]            || [[Minimum|Lesser of]]
| <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || [[Floor]]            ||      || [[Minimum|Lesser of]]                 || vec
|-
|-
| <source lang=apl inline>|</source> || [[Absolute value]]    || [[Residue]]
| <syntaxhighlight lang=apl inline>|</syntaxhighlight> || [[Absolute value]]    ||      || [[Residue]]                           || vec
|-
|-
| <source lang=apl inline>⍳</source> || [[Iota|Index list]]   || [[Index of]]
| <syntaxhighlight lang=apl inline>⍳</syntaxhighlight> || [[Index list]]       ||      || [[Index of]]                         ||
|-
|-
| <source lang=apl inline>?</source> || [[Roll]]              || [[Deal]]
| <syntaxhighlight lang=apl inline>?</syntaxhighlight> || [[Roll]]              ||      || [[Deal]]                             ||
|-
|-
| <source lang=apl inline>*</source> || [[Exponential]]      || [[Power function|To the power of]]
| <syntaxhighlight lang=apl inline>*</syntaxhighlight> || [[Exponential]]      ||      || [[Power function|To the power of]]   || vec
|-
|-
| <source lang=apl inline>⍟</source> || [[Natural log]]      || [[Logarithm|Log to the base]]
| <syntaxhighlight lang=apl inline>⍟</syntaxhighlight> || [[Natural log]]      ||      || [[Logarithm|Log to the base]]         || vec
|-
|-
| <source lang=apl inline>○</source> || [[Pi times]]          || [[Circle function|Circular and Hyperbolic functions]]
| <syntaxhighlight lang=apl inline>○</syntaxhighlight> || [[Pi times]]          ||      || [[Circle function|Circular and Hyperbolic functions]] || vec
|-
|-
| <source lang=apl inline>!</source> || [[Factorial]]        || [[Binomial]]
| <syntaxhighlight lang=apl inline>!</syntaxhighlight> || [[Factorial]]        ||      || [[Binomial]]                         || vec
|-
|-
| <source lang=apl inline>⌹</source> || [[Matrix inverse]]    || [[Matrix divide]]
| <syntaxhighlight lang=apl inline>⌹</syntaxhighlight> || [[Matrix inverse]]    ||      || [[Matrix divide]]                     ||
|-
|-
| <source lang=apl inline><</source> ||                      || [[Less than]]
| <syntaxhighlight lang=apl inline><</syntaxhighlight> ||                      ||      || [[Less than]]                         || vec
|-
|-
| <source lang=apl inline>≤</source> ||                      || [[Less than or equal]]
| <syntaxhighlight lang=apl inline>≤</syntaxhighlight> ||                      ||      || [[Less than or equal]]               || vec
|-
|-
| <source lang=apl inline>=</source> ||                      || [[Equal]]
| <syntaxhighlight lang=apl inline>=</syntaxhighlight> ||                      ||      || [[Equal]]                             || vec
|-
|-
| <source lang=apl inline>≥</source> ||                      || [[Greater than or equal]]
| <syntaxhighlight lang=apl inline>≥</syntaxhighlight> ||                      ||      || [[Greater than or equal]]             || vec
|-
|-
| <source lang=apl inline>></source> ||                      || [[Greater than]]
| <syntaxhighlight lang=apl inline>></syntaxhighlight> ||                      ||      || [[Greater than]]                     || vec
|-
|-
| <source lang=apl inline>≠</source> ||                      || [[Not equal]]
| <syntaxhighlight lang=apl inline>≠</syntaxhighlight> ||                      ||      || [[Not equal]]                         || vec
|-
|-
| <source lang=apl inline>≡</source> || [[Depth]]            || [[Match]]
| <syntaxhighlight lang=apl inline>≡</syntaxhighlight> || [[Depth]]            ||      || [[Match]]                             ||
|-
|-
| <source lang=apl inline>≢</source> ||                      || [[Not Match]]
| <syntaxhighlight lang=apl inline>≢</syntaxhighlight> ||                      ||      || [[Not Match]]                         ||
|-
|-
| <source lang=apl inline>∊</source> || [[Enlist]]            || [[Membership]]
| <syntaxhighlight lang=apl inline>∊</syntaxhighlight> || [[Enlist]]            ||      || [[Membership]]                       ||
|-
|-
| <source lang=apl inline>⍷</source> ||                      || [[Find]]
| <syntaxhighlight lang=apl inline>⍷</syntaxhighlight> ||                      ||      || [[Find]]                             ||
|-
|-
| <source lang=apl inline>∪</source> || [[Unique]]            || [[Union]]
| <syntaxhighlight lang=apl inline>∪</syntaxhighlight> || [[Unique]]            ||      || [[Union]]                             ||
|-
|-
| <source lang=apl inline>∩</source> ||                      || [[Intersection]]
| <syntaxhighlight lang=apl inline>∩</syntaxhighlight> ||                      ||      || [[Intersection]]                     ||
|-
|-
| <source lang=apl inline>~</source> || [[Not]]              || [[Without]]
| <syntaxhighlight lang=apl inline>~</syntaxhighlight> || [[Not]]              ||      || [[Without]]                           ||
|-
|-
| <source lang=apl inline>∨</source> ||                      || [[Or]]
| <syntaxhighlight lang=apl inline>∨</syntaxhighlight> ||                      ||      || [[Or]]                               ||
|-
|-
| <source lang=apl inline>^</source> ||                      || [[And]]
| <syntaxhighlight lang=apl inline>^</syntaxhighlight> ||                      ||      || [[And]]                               ||
|-
|-
| <source lang=apl inline>⍱</source> ||                      || [[Nor]]
| <syntaxhighlight lang=apl inline>⍱</syntaxhighlight> ||                      ||      || [[Nor]]                               ||
|-
|-
| <source lang=apl inline>⍲</source> ||                      || [[Nand]]
| <syntaxhighlight lang=apl inline>⍲</syntaxhighlight> ||                      ||      || [[Nand]]                             ||
|-
|-
| <source lang=apl inline>⍴</source> || [[Shape|Shape of]]    || [[Reshape]]
| <syntaxhighlight lang=apl inline>⍴</syntaxhighlight> || [[Shape|Shape of]]    ||      || [[Reshape]]                           ||
|-
|-
| <source lang=apl inline>,</source> || [[Ravel]]             || [[Catenate|Catenate, Laminate]]
| <syntaxhighlight lang=apl inline>,</syntaxhighlight> || [[Ravel]]         || vec,frac || [[Catenate|Catenate, Laminate]]       ||
|-
|-
| <source lang=apl inline>⍪</source> ||                      || [[Catenate First|1st axis catenate]]
| <syntaxhighlight lang=apl inline>⍪</syntaxhighlight> ||                      ||      || [[Catenate First|1st axis catenate]] ||
|-
|-
| <source lang=apl inline>⌽</source> || [[Reverse]]          || [[Rotate]]
| <syntaxhighlight lang=apl inline>⌽</syntaxhighlight> || [[Reverse]]          || scal || [[Rotate]]                           || scal
|-
|-
| <source lang=apl inline>⊖</source> || [[Reverse First]]    || [[Rotate First|1st axis rotate]]
| <syntaxhighlight lang=apl inline>⊖</syntaxhighlight> || [[Reverse First]]    || scal || [[Rotate First|1st axis rotate]]     || scal
|-
|-
| <source lang=apl inline>⍉</source> ||colspan=2| [[Transpose]]
| <syntaxhighlight lang=apl inline>⍉</syntaxhighlight> ||colspan=4| [[Transpose]]
|-
|-
| <source lang=apl inline>↑</source> || [[First]]            || [[Take]]
| <syntaxhighlight lang=apl inline>↑</syntaxhighlight> || [[First]]            ||      || [[Take]]                             || vec
|-
|-
| <source lang=apl inline>↓</source> ||                      || [[Drop]]
| <syntaxhighlight lang=apl inline>↓</syntaxhighlight> ||                      ||      || [[Drop]]                             || vec
|-
|-
| <source lang=apl inline>⊂</source> || [[Enclose]]          || [[Partition]]
| <syntaxhighlight lang=apl inline>⊂</syntaxhighlight> || [[Enclose]]          || vec  || [[Partition]]                         || scal
|-
|-
| <source lang=apl inline>⊃</source> || Disclose ([[Mix]])    || [[Pick]]
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || [[Disclose]]         || vec  || [[Pick]]                             ||
|-
|-
| <source lang=apl inline>⌷</source> ||                      || [[Squad Index|Index]]
| <syntaxhighlight lang=apl inline>⌷</syntaxhighlight> ||                      ||      || [[Squad Index|Index]]                 || vec
|-
|-
| <source lang=apl inline>⍋</source> ||colspan=2| [[Grade up]]
| <syntaxhighlight lang=apl inline>⍋</syntaxhighlight> ||colspan=4| [[Grade up]]
|-
|-
| <source lang=apl inline>⍒</source> ||colspan=2| [[Grade down]]
| <syntaxhighlight lang=apl inline>⍒</syntaxhighlight> ||colspan=4| [[Grade down]]
|-
|-
| <source lang=apl inline>⊤</source> ||                      || [[Encode]]
| <syntaxhighlight lang=apl inline>⊤</syntaxhighlight> ||                      ||      || [[Encode]]                           ||
|-
|-
| <source lang=apl inline>⊥</source> ||                      || [[Decode]]
| <syntaxhighlight lang=apl inline>⊥</syntaxhighlight> ||                      ||      || [[Decode]]                           ||
|-
|-
| <source lang=apl inline>⍺</source> ||                      || Picture format
| <syntaxhighlight lang=apl inline>⍺</syntaxhighlight> ||                      ||      || Picture format                       ||
|-
|-
| <source lang=apl inline>⍕</source> || [[Format]]            || [[Dyadic format|Format]] by specification or by example
| <syntaxhighlight lang=apl inline>⍕</syntaxhighlight> || [[Format]]            ||      || [[Dyadic format|Format]] by specification or by example ||
|-
|-
| <source lang=apl inline>⍎</source> ||                      || [[Execute]]
| <syntaxhighlight lang=apl inline>⍎</syntaxhighlight> ||                      ||      || [[Execute]]                           ||
|-
|-
| <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> ||                      || [[Compress]], [[Replicate]]
| <syntaxhighlight lang=apl inline>/</syntaxhighlight> ||                      ||      || [[Compress]], [[Replicate]]           || scal
|-
|-
| <source lang=apl inline>⌿</source> ||                      || [[Replicate First|1st axis compress/replicate]]
| <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> ||                      ||      || [[Replicate First|1st axis compress/replicate]] || scal
|-
|-
| <source lang=apl inline>\</source> ||                      || [[Expand]]
| <syntaxhighlight lang=apl inline>\</syntaxhighlight> ||                      ||      || [[Expand]]                           || scal
|-
|-
| <source lang=apl inline>⍀</source> ||                      || [[Expand First|1st axis expand]]
| <syntaxhighlight lang=apl inline>⍀</syntaxhighlight> ||                      ||      || [[Expand First|1st axis expand]]     || scal
|}
|}
In addition, a few primitives for component file operations were taken from or inspired by [[APL/700]].


=== Operators ===
=== Operators ===
Line 148: 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>/</syntaxhighlight>  || Monadic || [[Reduce]]                      || [[N-wise Reduce]]
|-
|-
| <source lang=apl inline>⌿</source>  || Monadic || [[Reduce First|1st axis reduce]] || [[N-wise Reduce first]]
| <syntaxhighlight lang=apl inline>⌿</syntaxhighlight>  || Monadic || [[Reduce First|1st axis reduce]] || [[N-wise Reduce first]]
|-
|-
| <source lang=apl inline>\</source>  || Monadic || [[Scan]]                        ||
| <syntaxhighlight lang=apl inline>\</syntaxhighlight>  || Monadic || [[Scan]]                        ||
|-
|-
| <source lang=apl inline>⍀</source>  || Monadic || [[Scan First|1st axis scan]]    ||
| <syntaxhighlight lang=apl inline>⍀</syntaxhighlight>  || Monadic || [[Scan First|1st axis scan]]    ||
|-
|-
| <source lang=apl inline>.</source>  || Dyadic  ||                                  || [[Inner product]]
| <syntaxhighlight lang=apl inline>.</syntaxhighlight>  || Dyadic  ||                                  || [[Inner product]]
|-
|-
| <source lang=apl inline>∘.</source> || Monadic ||                                  || [[Outer product]]
| <syntaxhighlight lang=apl inline>∘.</syntaxhighlight> || Monadic ||                                  || [[Outer product]]
|-
|-
| <source lang=apl inline>¨</source>  || Monadic ||colspan=2| [[Each]]
| <syntaxhighlight lang=apl inline>¨</syntaxhighlight>  || Monadic ||colspan=2| [[Each]]
|}
|}


Line 168: Line 172:
* [https://dyalog.github.io/aplx/ Tools to help migrate from APLX to Dyalog APL]
* [https://dyalog.github.io/aplx/ Tools to help migrate from APLX to Dyalog APL]


{{APL programming language}}
{{APL dialects}}[[Category:APL dialects]][[Category:Nested array languages]]

Navigation menu