Comparison of APL dialects: Difference between revisions

Jump to navigation Jump to search
→‎Language features: Remove Co-dfns: as a dialect it's just a Dyalog subset, and instability and partial support means it's hard to keep the table accurate
(Function definition)
(→‎Language features: Remove Co-dfns: as a dialect it's just a Dyalog subset, and instability and partial support means it's hard to keep the table accurate)
(2 intermediate revisions by the same user not shown)
Line 18: Line 18:
| <syntaxhighlight lang=apl inline>></syntaxhighlight> || [[Mix]]      || [[SHARP APL]], [[A]], [[A+]]
| <syntaxhighlight lang=apl inline>></syntaxhighlight> || [[Mix]]      || [[SHARP APL]], [[A]], [[A+]]
|-
|-
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || [[Mix]]      || [[APL2]], [[ISO/IEC 13751:2001]], [[APLX]], [[NARS2000]], [[GNU APL]], [[Kap]]
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || [[Mix]]      || [[APL2]], [[ISO/IEC 13751:2001]], [[APL2C]], [[APLX]], [[NARS2000]], [[GNU APL]], [[Kap]]
|-
|-
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || [[First]]    || [[ngn/apl]], [[Co-dfns]], [[dzaima/APL]], [[April]]
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || [[First]]    || [[ngn/apl]], [[Co-dfns]], [[dzaima/APL]], [[April]]
Line 59: Line 59:
The following table shows support for various APL features: nesting either with [[box]]es or the [[nested array model]], [[defined function]]s or similar syntax, [[control structure]]s, [[dfn]]-style anonymous functions, [[tacit]] programming, particularly with [[train]]s, [[complex number]]s, arbitrary-precision integers, [[Unicode]] support, and [[namespace]]s or a similar encapsulation feature. The precise syntax and capabilities of these features might differ between dialects that support them.
The following table shows support for various APL features: nesting either with [[box]]es or the [[nested array model]], [[defined function]]s or similar syntax, [[control structure]]s, [[dfn]]-style anonymous functions, [[tacit]] programming, particularly with [[train]]s, [[complex number]]s, arbitrary-precision integers, [[Unicode]] support, and [[namespace]]s or a similar encapsulation feature. The precise syntax and capabilities of these features might differ between dialects that support them.


Dialects included in the first row include [[APL\360]], [[APL\1130]], [[APL*PLUS]] before II, [[APL/700]], [[APL.SV]], [[APL 5100]], [[MCM/70]], [[VS APL]], [[APL\3000]], and [[Aplette]]. [[Extended Dyalog APL]] and [[Dyalog APL Vision]] have the same feature-set as [[Dyalog APL]].
Dialects included in the first row include [[APL\360]], [[APL\1130]], [[APL*PLUS]] before II, [[APL/700]], [[APL.SV]], [[APL 5100]], [[MCM/70]], [[VS APL]], [[APL\3000]], and [[Aplette]]. Dates for [[APL+Win]] include those for APL*PLUS. [[Extended Dyalog APL]] and [[Dyalog APL Vision]] have the same feature set as [[Dyalog APL]].


{|class="wikitable sortable"
{|class="wikitable sortable"
! Dialect                !! Nesting !! [[Tradfn]]s !! [[Control structure|Control]] !! [[Dfn]]s !! [[Tacit]] !! [[Complex]] !! Big int !! [[Unicode]]    !! [[Namespace]]
! Dialect                !! Nesting     !! [[Tradfn]]s !! [[Control structure|Control]] !! [[Dfn]]s   !! [[Tacit]]     !! [[Complex]] !! Big int !! [[Unicode]]    !! [[Namespace]]
|-
|-
| [[APL\360]], [[APL.SV]], … || {{No}}       || {{Yes}} || {{No}}            || {{No}}            || {{No}}        || {{No}} || {{No}}  || {{No}}          || {{No}}
| [[APL\360]], [[APL.SV]], … || {{No}}             || {{Yes}} || {{No}}            || {{No}}            || {{No}}        || {{No}}       || {{No}}  || {{No}}          || {{No}}
|-
|-
| [[SHARP APL]]           || {{Yes|Boxes}}   || {{Yes}} || {{No}}           || {{No}}            || {{No}}        || {{Yes}} || {{No}}  || {{No}}          || {{No}}
| [[APL+Win]]             || {{Yes|Nested (1989)}} || {{Yes}} || {{Yes|1994}}     || {{No}}            || {{No}}        || {{No}}       || {{No}}  || {{No}}          || {{Yes|2006}}
|-
|-
| [[NARS]]               || {{Yes|Nested}}  || {{Yes}} || {{No}}            || {{Maybe|[[direct definition (operator)|direct def]]}}
| [[SHARP APL]]           || {{Yes|Boxes (1981)}}  || {{Yes}} || {{No}}            || {{No}}           || {{No}}        || {{Yes|1981}} || {{No}}  || {{No}}          || {{No}}
                                                                                                  | {{No}}        || {{No}} || {{No}}  || {{No}}          || {{No}}
|-
|-
| [[Dyalog APL]]         || {{Yes|Nested}} || {{Yes}} || {{Yes}}           || {{Yes}}           || {{Yes}}       || {{Yes}} || {{No}}  || {{Yes}}         || {{Yes}}
| [[NARS]]               || {{Yes|Nested}}       || {{Yes}} || {{No}}           || {{Maybe|[[direct definition (operator)|direct def]]}}
                                                                                                        | {{No}}         || {{No}}       || {{No}}  || {{No}}         || {{No}}
|-
|-
| [[APL2]]               || {{Yes|Nested}} || {{Yes}} || {{No}}           || {{No}}           || {{No}}         || {{Yes}} || {{No}}  || {{No}}         || {{Yes}}
| [[Dyalog APL]]         || {{Yes|Nested}}       || {{Yes}} || {{Yes|1996}}     || {{Yes|1996}}     || {{Yes|2014}}   || {{Yes|2011}} || {{No}}  || {{Yes|2008}}   || {{Yes|1994}}
|-
|-
| [[A+]]                 || {{Yes|Boxes}}   || {{Yes}} || {{Yes}}           || {{No}}            || {{Maybe|Some}} || {{No}} || {{No}}  || {{No}}          || {{No}}
| [[APL2]]               || {{Yes|Nested}}       || {{Yes}} || {{No}}           || {{No}}            || {{No}}         || {{Yes}}     || {{No}}  || {{No}}          || {{Yes|1987}}
|-
|-
| [[APL*PLUS II]]         || {{Yes|Nested}} || {{Yes}} || {{No}}           || {{No}}            || {{No}}         || {{No}} || {{No}}  || {{No}}          || {{No}}
| [[A+]]                 || {{Yes|Boxes}}         || {{Yes}} || {{Yes}}           || {{No}}            || {{Maybe|Some}} || {{No}}       || {{No}}  || {{No}}          || {{No}}
|-
|-
| [[SAX]]                || {{Yes|Boxes}}   || {{Yes}} || {{Yes}}          || {{No}}            || {{Maybe|Some}} || {{No}} || {{No}}  || {{No}}          || {{No}}
| [[SAX]]                || {{Yes|Boxes}}         || {{Yes}} || {{Yes}}          || {{No}}            || {{Maybe|Some}} || {{No}}       || {{No}}  || {{No}}          || {{No}}
|-
|-
| [[APL*PLUS III]]       || {{Yes|Nested}} || {{Yes}} || {{Yes}}          || {{No}}            || {{No}}        || {{No}} || {{No}}  || {{No}}          || {{No}}
| [[APL2C]]               || {{Yes|Nested}}       || {{Yes}} || {{Yes}}          || {{No}}            || {{No}}        || {{No}}       || {{No}}  || {{No}}          || {{No}}
|-
|-
| [[APL+Win]]             || {{Yes|Nested}} || {{Yes}} || {{Yes}}          || {{No}}            || {{No}}        || {{No}} || {{No}}  || {{No}}          || {{Yes}}
| [[APLX]]               || {{Yes|Nested}}       || {{Yes}} || {{Yes}}          || {{No}}            || {{No}}        || {{No}}       || {{No}}  || {{No}}          || {{No}}
|-
|-
| [[APLX]]               || {{Yes|Nested}} || {{Yes}} || {{Yes}}          || {{No}}           || {{No}}         || {{No}} || {{No}} || {{No}}         || {{No}}
| [[NARS2000]]           || {{Yes|Nested}}       || {{Yes}} || {{Yes}}          || {{Yes}}           || {{Yes|2009}}   || {{Yes}}     || {{Yes}} || {{Maybe|UCS-2}} || {{No}}
|-
|-
| [[NARS2000]]           || {{Yes|Nested}} || {{Yes}} || {{Yes}}          || {{Yes}}           || {{Yes}}       || {{Yes}} || {{Yes}} || {{Maybe|UCS-2}} || {{No}}
| [[VisualAPL]]           || {{Yes|Nested}}       || {{Yes}} || {{Yes}}          || {{No}}           || {{No}}         || {{No}}       || {{No}} || {{Yes}}         || {{Yes}}
|-
|-
| [[VisualAPL]]           || {{Yes|Nested}} || {{Yes}} || {{Yes}}          || {{No}}           || {{No}}         || {{No}} || {{No}}  || {{Yes}}        || {{Yes}}
| [[APL#]]               || {{Yes|Nested}}       || {{No}} || {{Yes}}          || {{Yes}}           || {{Yes}}       || {{No}}       || {{No}}  || {{Yes}}        || {{Yes}}
|-
|-
| [[APL#]]               || {{Yes|Nested}} || {{No}}  || {{Yes}}           || {{Yes}}          || {{Yes}}        || {{No}} || {{No}}  || {{Yes}}        || {{Yes}}
| [[ngn/apl]]             || {{Yes|Nested}}       || {{No}}  || {{No}}           || {{Yes}}          || {{Yes}}        || {{Yes}}     || {{No}}  || {{Yes}}        || {{No}}
|-
|-
| [[ngn/apl]]            || {{Yes|Nested}} || {{No}} || {{No}}           || {{Yes}}           || {{Yes}}       || {{Yes}} || {{No}}  || {{Yes}}        || {{No}}
| [[GNU APL]]            || {{Yes|Nested}}       || {{Yes}} || {{Maybe|If-else}} || {{Maybe|Limited}} || {{No}}         || {{Yes}}     || {{No}}  || {{Yes}}        || {{Yes}}
|-
|-
| [[GNU APL]]             || {{Yes|Nested}} || {{Yes}} || {{Maybe|If-else}} || {{Maybe|Limited}} || {{No}}         || {{Yes}} || {{No}} || {{Yes}}        || {{Yes}}
| [[April]]               || {{Yes|Nested}}       || {{No}} || {{No}}           || {{Yes}}           || {{Yes}}       || {{Yes}}     || {{Yes}} || {{Yes}}        || {{Yes}}
|-
|-
| [[Co-dfns]]             || {{Yes|Nested}} || {{No}}  || {{No}}            || {{Yes}}          || {{Yes}}        || {{Yes}} || {{No}} || {{Yes}}        || {{Maybe|Partial}}
| [[dzaima/APL]]         || {{Yes|Nested}}       || {{No}}  || {{No}}            || {{Yes}}          || {{Yes}}        || {{No}}       || {{Yes}} || {{Yes}}        || {{Yes}}
|-
|-
| [[April]]               || {{Yes|Nested}} || {{No}}  || {{No}}            || {{Yes}}          || {{Yes}}        || {{Yes}} || {{Yes}} || {{Yes}}        || {{Yes}}
| [[APL\iv]]             || {{Maybe|Lists}}       || {{No}}  || {{No}}            || {{Yes}}          || {{Yes}}        || {{Yes}}     || {{No}} || {{Yes}}        || {{No}}
|-
|-
| [[dzaima/APL]]         || {{Yes|Nested}} || {{No}} || {{No}}           || {{Yes}}          || {{Yes}}        || {{No}} || {{Yes}} || {{Yes}}        || {{Yes}}
| [[Kap]]                 || {{Yes|Nested}}       || {{Yes}} || {{Yes}}           || {{Yes}}          || {{Yes}}        || {{Yes}}     || {{Yes}} || {{Yes}}        || {{Yes}}
|-
|-
| [[APL\iv]]              || {{Maybe|Lists}} || {{No}}  || {{No}}            || {{Yes}}          || {{Yes}}        || {{Yes}} || {{No}}  || {{Yes}}        || {{No}}
| [[APL64]]              || {{Yes|Nested}}       || {{Yes}} || {{Yes}}          || {{No}}            || {{No}}        || {{No}}       || {{No}}  || {{Yes}}        || {{Yes}}
|-
| [[Kap]]                || {{Yes|Nested}}  || {{Yes}} || {{Yes}}          || {{Yes}}          || {{Yes}}        || {{Yes}} || {{Yes}} || {{Yes}}        || {{Yes}}
|-
| [[APL64]]              || {{Yes|Nested}} || {{Yes}} || {{Yes}}          || {{No}}            || {{No}}        || {{No}} || {{No}}  || {{Yes}}        || {{Yes}}
|}
|}


Line 148: Line 144:
|-
|-
| [[APL+Win]]            || 1995    || {{Maybe|2019}} ||              || [[APL2000]]                                  ||                                                                                                            || Portable
| [[APL+Win]]            || 1995    || {{Maybe|2019}} ||              || [[APL2000]]                                  ||                                                                                                            || Portable
|-
| [[APL2C]]              || 2001    || {{Maybe|2002}} ||              || Tilman Otto                                  || [[wikipedia:C (programming language)|C]]                                                                  || Portable
|-
|-
| [[APLX]]                || 2002    || {{Maybe|2016}} || {{No|2016}}  || [[MicroAPL Ltd.]]                            || [[wikipedia:C_(programming_language)|C]], [[wikipedia:C++|C++]]                                            || Portable
| [[APLX]]                || 2002    || {{Maybe|2016}} || {{No|2016}}  || [[MicroAPL Ltd.]]                            || [[wikipedia:C_(programming_language)|C]], [[wikipedia:C++|C++]]                                            || Portable

Navigation menu