Comparison of APL dialects: Difference between revisions

Jump to navigation Jump to search
Undo revision 11297 by Adám Brudzewsky (talk) I find this much harder to read. It was ordered by nesting, functions, then other datatypes. Time of first introduction is basically historical accident, is ill-defined (direct def doesn't count for dfns?), and breaks up related pairs like dfns+tacit and complex+big int
(→‎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)
(Undo revision 11297 by Adám Brudzewsky (talk) I find this much harder to read. It was ordered by nesting, functions, then other datatypes. Time of first introduction is basically historical accident, is ill-defined (direct def doesn't count for dfns?), and breaks up related pairs like dfns+tacit and complex+big int)
Tag: Undo
(3 intermediate revisions by 2 users not shown)
Line 30: Line 30:
Dialects offer a variety of ways to create [[function]]s and [[operator]]s. The three major branches are [[defined function]]s, which use a header declaring the function and argument names, [[anonymous function]]s such as [[dfn]]s, which also consist of a list of statements but have no header and use fixed argument names, and [[tacit programming|tacit function]]s, which are created by manipulating existing functions with no reference to [[argument]]s.
Dialects offer a variety of ways to create [[function]]s and [[operator]]s. The three major branches are [[defined function]]s, which use a header declaring the function and argument names, [[anonymous function]]s such as [[dfn]]s, which also consist of a list of statements but have no header and use fixed argument names, and [[tacit programming|tacit function]]s, which are created by manipulating existing functions with no reference to [[argument]]s.


Defined functions were the dominant form for most of APL's history, with only some niche forms based on [[direct definition (notation)|direct definition notation]] appearing in the 1980s: the [[direct definition (operator)|direct definition operator]] in [[NARS]] and a library to translate this notation to defined functions in [[SHARP APL]]. Function assignment, a necessary feature for tacit programming, began to appear in the 1980s, such as in [[Dyalog APL]] version 4.0 in 1986. However, [[train]]s, which make larger-scale tacit programming feasible, were not introduced to APL until around 2010. Dyalog's [[dfn]]s were introduced in 1996 to slow initial adoption; nearly all new dialects of the 2010s and later support a similar syntax. Because of the widespread use of dfns, several of these dialects no longer support a traditional function definition notation.
Defined functions were the dominant form for most of APL's history, with only some niche forms based on [[direct definition (notation)|direct definition notation]] appearing in the 1980s: the [[direct definition (operator)|direct definition operator]] in [[NARS]] and a library to translate this notation to defined functions in [[SHARP APL]]. [[Function assignment]], a necessary feature for tacit programming, began to appear in the 1980s, such as in [[Dyalog APL]] version 4.0 in 1986. However, [[train]]s, which make larger-scale tacit programming feasible, were not introduced to APL until around 2010. Dyalog's [[dfn]]s were introduced in 1996 to slow initial adoption; nearly all new dialects of the 2010s and later support a similar syntax. Because of the widespread use of dfns, several of these dialects no longer support a traditional function definition notation.


== Numeric types ==
== Numeric types ==
Line 145: Line 145:
| [[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
| [[APL2C]]              || 2001    || {{Maybe|2002}} ||              || Tilman Otto                                  || [[wikipedia:C (programming language)|C]]                                                                  || Windows 9x/NT/2000
|-
|-
| [[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