4,502
edits
(→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) |
m (→See also) |
||
(4 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]] || | | [[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 | ||
Line 188: | Line 188: | ||
* [[Leading axis theory#Adoption in APL]] | * [[Leading axis theory#Adoption in APL]] | ||
* [[Array notation#Comparison of array notations]] | * [[Array notation#Comparison of array notations]] | ||
* [[Timeline of APL primitives]] | |||
== External links == | == External links == | ||
* [https://omnibar.rubenverg.com Omnibar] lists all glyphs with their meanings and allows custom comparisons between dialects:[[File:Omnibar|center]] | * [https://omnibar.rubenverg.com Omnibar] lists all glyphs with their meanings and allows custom comparisons between dialects:[[File:Omnibar|center]] | ||
{{APL dialects}}[[Category:Lists]] | {{APL dialects}}[[Category:Lists]] |