APLX: Difference between revisions

Jump to navigation Jump to search
3,214 bytes added ,  22:25, 10 September 2022
m
Text replacement - "</source>" to "</syntaxhighlight>"
Miraheze>Adám Brudzewsky
No edit summary
m (Text replacement - "</source>" to "</syntaxhighlight>")
Tags: Mobile edit Mobile web edit
(19 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><nowiki>|</nowiki></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]]
|-
|-
| <source lang=apl inline></source> || [[Natural log]]      || [[Logarithm|Log to the base]]
| <syntaxhighlight lang=apl inline>*</syntaxhighlight> || [[Exponential]]      ||      || [[Power function|To the power of]]   || vec
|-
|-
| <source lang=apl inline></source> || [[Pi times]]         || [[Circle function|Circular and Hyperbolic functions]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Natural log]]       ||      || [[Logarithm|Log to the base]]         || vec
|-
|-
| <source lang=apl inline>!</source> || [[Factorial]]         || [[Binomial]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Pi times]]         ||      || [[Circle function|Circular and Hyperbolic functions]] || vec
|-
|-
| <source lang=apl inline></source> || [[Matrix inverse]]   || [[Matrix divide]]
| <syntaxhighlight lang=apl inline>!</syntaxhighlight> || [[Factorial]]         ||      || [[Binomial]]                         || vec
|-
|-
| <source lang=apl inline><</source> ||                       || [[Less than]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Matrix inverse]]    ||      || [[Matrix divide]]                     ||
|-
|-
| <source lang=apl inline></source> ||                      || [[Less than or equal]]
| <syntaxhighlight lang=apl inline><</syntaxhighlight> ||                      ||      || [[Less than]]                         || vec
|-
|-
| <source lang=apl inline>=</source> ||                      || [[Equal]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Less than or equal]]               || vec
|-
|-
| <source lang=apl inline></source> ||                      || [[Greater than or equal]]
| <syntaxhighlight lang=apl inline>=</syntaxhighlight> ||                      ||      || [[Equal]]                             || vec
|-
|-
| <source lang=apl inline>></source> ||                      || [[Greater than]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Greater than or equal]]             || vec
|-
|-
| <source lang=apl inline></source> ||                      || [[Not equal]]
| <syntaxhighlight lang=apl inline>></syntaxhighlight> ||                      ||      || [[Greater than]]                     || vec
|-
|-
| <source lang=apl inline></source> || [[Depth]]             || [[Match]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Not equal]]                         || vec
|-
|-
| <source lang=apl inline></source> ||                       || [[Not Match]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Depth]]            ||      || [[Match]]                             ||
|-
|-
| <source lang=apl inline></source> || [[Enlist]]           || [[Membership]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Not Match]]                         ||
|-
|-
| <source lang=apl inline></source> ||                       || [[Find]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Enlist]]            ||      || [[Membership]]                       ||
|-
|-
| <source lang=apl inline></source> || [[Unique]]           || [[Union]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Find]]                             ||
|-
|-
| <source lang=apl inline></source> ||                       || [[Intersection]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Unique]]            ||      || [[Union]]                             ||
|-
|-
| <source lang=apl inline>~</source> || [[Not]]               || [[Without]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Intersection]]                     ||
|-
|-
| <source lang=apl inline></source> ||                      || [[Or]]
| <syntaxhighlight lang=apl inline>~</syntaxhighlight> || [[Not]]               ||     || [[Without]]                           ||
|-⌹
| <source lang=apl inline>^</source> ||                      || [[And]]
|-
|-
| <source lang=apl inline></source> ||                      || [[Nor]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Or]]                               ||
|-
|-
| <source lang=apl inline></source> ||                      || [[Nand]]
| <syntaxhighlight lang=apl inline>^</syntaxhighlight> ||                      ||      || [[And]]                               ||
|-
|-
| <source lang=apl inline></source> || [[Shape|Shape of]]    || [[Reshape]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                       ||     || [[Nor]]                               ||
|-
|-
| <source lang=apl inline>,</source> || [[Ravel]]            || [[Catenate|Catenate, Laminate]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                       ||      || [[Nand]]                             ||
|-⌹
| <source lang=apl inline>⍪</source> ||                      || [[Catenate First|1st axis catenate]]
|-
|-
| <source lang=apl inline></source> || [[Reverse]]           || [[Rotate]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Shape|Shape of]]   ||      || [[Reshape]]                           ||
|-
|-
| <source lang=apl inline></source> || [[Reverse First]]     || [[Rotate First|1st axis rotate]]
| <syntaxhighlight lang=apl inline>,</syntaxhighlight> || [[Ravel]]         || vec,frac || [[Catenate|Catenate, Laminate]]       ||
|-
|-
| <source lang=apl inline></source> ||colspan=2| [[Transpose]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                       ||      || [[Catenate First|1st axis catenate]] ||
|-
|-
| <source lang=apl inline></source> || [[First]]             || [[Take]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Reverse]]           || scal || [[Rotate]]                           || scal
|-
|-
| <source lang=apl inline></source> ||                       || [[Drop]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Reverse First]]    || scal || [[Rotate First|1st axis rotate]]     || scal
|-
|-
| <source lang=apl inline></source> || [[Enclose]]          || [[Partition]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||colspan=4| [[Transpose]]
|-
|-
| <source lang=apl inline></source> || Disclose ([[Mix]])    || [[Pick]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[First]]             ||      || [[Take]]                             || vec
|-
|-
| <source lang=apl inline></source> ||                      || [[Squad Index|Index]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Drop]]                             || vec
|-
|-
| <source lang=apl inline></source> ||colspan=2| [[Grade up]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Enclose]]          || vec  || [[Partition]]                         || scal
|-
|-
| <source lang=apl inline></source> ||colspan=2| [[Grade down]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Disclose]]          || vec  || [[Pick]]                             ||
|-
|-
| <source lang=apl inline></source> ||                      || [[Encode]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Squad Index|Index]]                 || vec
|-
|-
| <source lang=apl inline></source> ||                       || [[Decode]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||colspan=4| [[Grade up]]
|-
|-
| <source lang=apl inline></source> ||                       || Picture format
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||colspan=4| [[Grade down]]
|-
|-
| <source lang=apl inline></source> || [[Format]]           || [[Dyadic format|Format]] by specification or by example
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Encode]]                           ||
|-
|-
| <source lang=apl inline></source> ||                      || [[Execute]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Decode]]                           ||
|-
|-
| <source lang=apl inline></source> || [[Stop]]              || [[Left Identity|Left]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                       ||     || Picture format                        ||
|-
|-
| <source lang=apl inline></source> || [[Identity|Pass]]     || [[Right Identity|Right]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Format]]           ||      || [[Dyadic format|Format]] by specification or by example ||
|-
|-
| <source lang=apl inline>/</source> ||                      || [[Compress]], [[Replicate]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> ||                      ||      || [[Execute]]                           ||
|-
|-
| <source lang=apl inline></source> ||                       || [[Replicate First|1st axis compress/replicate]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Stop]]              ||      || [[Left Identity|Left]]               ||
|-
|-
| <source lang=apl inline>\</source> ||                       || [[Expand]]
| <syntaxhighlight lang=apl inline></syntaxhighlight> || [[Identity|Pass]]    ||      || [[Right Identity|Right]]             ||
|-
|-
| <source lang=apl inline>⍀</source> ||                      || [[Expand First|1st axis expand]]
| <syntaxhighlight lang=apl inline>/</syntaxhighlight> ||                      ||      || [[Compress]], [[Replicate]]          || scal
|-
| <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> ||                      ||      || [[Replicate First|1st axis compress/replicate]] || scal
|-
| <syntaxhighlight lang=apl inline>\</syntaxhighlight> ||                      ||      || [[Expand]]                            || scal
|-
| <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