Dyalog APL: Difference between revisions
Miraheze>Marshall |
Miraheze>Adám Brudzewsky (remove history list from intro) |
||
Line 23: | Line 23: | ||
In 1995, two of the development team — [[John Scholes]] and [[Peter Donnelly]] — were awarded the [[Iverson Award]] for their work on the interpreter. [[Gitte Christensen]] and [[Morten Kromberg]] were joint recipients of the Iverson Award in 2016. | In 1995, two of the development team — [[John Scholes]] and [[Peter Donnelly]] — were awarded the [[Iverson Award]] for their work on the interpreter. [[Gitte Christensen]] and [[Morten Kromberg]] were joint recipients of the Iverson Award in 2016. | ||
Dyalog APL is unique among commercial APLs in getting additional primitives and constructs | Dyalog APL is unique among commercial APLs in continuously getting additional primitives and constructs since its initial release | ||
== Versions == | == Versions == | ||
Line 106: | Line 98: | ||
| 17.0 || 2018 || July || <source lang=apl inline>⎕NCOPY</source>, <source lang=apl inline>⎕NMOVE</source> | | 17.0 || 2018 || July || <source lang=apl inline>⎕NCOPY</source>, <source lang=apl inline>⎕NMOVE</source> | ||
|- | |- | ||
| 17.1 || 2019 || October || | | 17.1 || 2019 || October || Duplicates in [[Interval Index]] (<source lang=apl inline>⍸</source>) look-up array | ||
|- | |- | ||
| 18.0 ||colspan=2| Unreleased || [[Atop]] (<source lang=apl inline>⍤</source>), [[Over]] (<source lang=apl inline>⍥</source>), [[Constant]] (<source lang=apl inline>⍨</source>), [[Unique Mask]] (<source lang=apl inline>≠</source>) | | 18.0 ||colspan=2| Unreleased || [[Atop]] (<source lang=apl inline>⍤</source>), [[Over]] (<source lang=apl inline>⍥</source>), [[Constant]] (<source lang=apl inline>⍨</source>), [[Unique Mask]] (<source lang=apl inline>≠</source>) |
Revision as of 15:56, 11 November 2019
Dyalog APL was first released by British company Dyadic Systems Ltd. (later Dyalog Ltd.) in 1983 for the Zylog Z80 processor. The name Dyalog is a portmanteau of Dyadic and Zylog. As of 2018, Dyalog APL is available for AIX, Linux (including on the Raspberry Pi), macOS and Microsoft Windows platforms. While mainly based is based on APL2, it adds support for both object-oriented, functional, and tacit programming. Dyalog APL also serves as the inspiration for many hobby implementations of APL.
In 1995, two of the development team — John Scholes and Peter Donnelly — were awarded the Iverson Award for their work on the interpreter. Gitte Christensen and Morten Kromberg were joint recipients of the Iverson Award in 2016.
Dyalog APL is unique among commercial APLs in continuously getting additional primitives and constructs since its initial release
Versions
Dyalog lists historical versions, along with release notes since 14.0, on its website.
Number | Year | Month | Features |
---|---|---|---|
1 | 1983 | April | Assignment for derived functions |
2 | 1984 | ||
3.0 | 1985 | ||
4.0 | 1986 | October | |
5.0 | 1987 | April | |
5.1 | 1988 | April | |
5.2 | 1990 | January | |
6.0 | 1990 | April | Namespaces with dot syntax |
6.1 | 1990 | October | |
6.2 | 1993 | April | |
6.3 | 1993 | October | |
7.0 | 1994 | August | |
7.1 | 1995 | May | Keywords (If/Then/Else, Repeat/Until, exception handling, and so on) |
8.0 | 1996 | May | dfns with lexical scope |
8.1 | 1997 | March | |
8.2 | 1999 | January | |
9.0 | 2000 | September | |
9.0.1 | 2001 | January | |
9.0.2 | 2002 | January | |
9.5 | 2002 | September | |
10.0 | 2003 | March | |
10.1 | 2004 | July | |
11.0 | 2006 | October | Object oriented programming (classes, objects, interfaces) modelled after C#, Index (⌷ ), Power operator (⍣ ), GCD (∨ ), LCM (∧ )
|
12.0 | 2008 | August | Unicode support (⎕AVU , ⎕UCS ), ⎕FCOPY , ⎕FPROPS
|
12.1 | 2009 | November | I-Beam (⌶ ), Table (⍪ ), ⎕XML , ⎕FCHK , User commands
|
13.0 | 2011 | April | Left (⊣ ), Right (⊢ ), Variant (⍠ ), ⎕OPT , ⎕R , ⎕S , ⎕FR , ⎕DCT , ⎕PROFILE , ⎕RSI
|
13.1 | 2012 | April | ⎕DMX , ⎕FHIST
|
13.2 | 2013 | January | |
14.0 | 2014 | June | Trains, Tally (≢ ), Key (⌸ ), Rank operator (⍤ ), multi-threading with futures and isolates
|
14.1 | 2015 | June | |
15.0 | 2016 | June | ⎕MKDIR , ⎕NDELETE , ⎕NEXISTS , ⎕NGET , ⎕NINFO , ⎕NPARTS , ⎕NPUT
|
16.0 | 2017 | June | At (@ ), Interval Index (⍸ ), Where (⍸ ), Nest (⊆ ), Partition (⊆ ), Stencil (⌺ ), ⎕JSON , ⎕CSV
|
17.0 | 2018 | July | ⎕NCOPY , ⎕NMOVE
|
17.1 | 2019 | October | Duplicates in Interval Index (⍸ ) look-up array
|
18.0 | Unreleased | Atop (⍤ ), Over (⍥ ), Constant (⍨ ), Unique Mask (≠ )
|
Primitives
Functions
Glyph | Monadic | Dyadic |
---|---|---|
+ |
Conjugate | Plus |
- |
Negate | Minus |
× |
Signum | Times |
÷ |
Reciprocal | Divide |
| |
Magnitude | Residue |
⌊ |
Floor | Minimum |
⌈ |
Ceiling | Maximum |
* |
Exponential | Power |
⍟ |
Natural Logarithm | Logarithm |
! |
Factorial | Binomial |
○ |
Pi Times | Circular |
~ |
Not | Without |
? |
Roll | Query |
∧ |
And | |
∨ |
Or | |
⍲ |
Nand | |
⍱ |
Nor | |
< |
Less | |
≤ |
Less Or Equal | |
= |
Equal | |
≥ |
Greater Or Equal | |
> |
Greater | |
≠ |
Unique Mask | Not Equal |
⍴ |
Shape | Reshape |
, |
Ravel | Catenate |
⍪ |
Table | Catenate First |
⌽ |
Reverse | Rotate |
⊖ |
Reverse First | Rotate First |
⍉ |
Transpose | |
↑ |
Mix/Disclose | Take |
↓ |
Split | Drop |
⊂ |
Enclose | Partitioned Enclose |
⊆ |
Nest | Partition |
∊ |
Enlist/Type | Membership |
⊃ |
Disclose/Mix | Pick |
/ |
Replicate | |
⌿ |
Replicate First | |
\ |
Expand | |
⍀ |
Expand First | |
∩ |
Intersection | |
∪ |
Unique | Union |
⊣ |
Same | Left |
⊢ |
Same | Right |
⍳ |
Index Generator | Index Of |
⍸ |
Where | Interval Index |
⍒ |
Grade Down | |
⍋ |
Grade Up | |
⍷ |
Find | |
≡ |
Depth | Match |
≢ |
Tally | Not Match |
⍎ |
Execute | |
⍕ |
Format | |
⊥ |
Base | |
⊤ |
Represent | |
⌹ |
Matrix Inverse | Matrix Divide |
⌷ |
Materialise | Squad Indexing |
Operators
Syntax | Monadic call | Dyadic call |
---|---|---|
f/ |
Reduction | Windowed Reduction |
f⌿ |
Reduction First | Windowed Reduction First |
f\ |
Scan | |
f⍀ |
Scan First | |
f¨ |
Each | |
f⍨ |
Commute | |
A⍨ |
Constant | |
f⍣v |
Power | |
f.g |
Inner Product | |
∘.f |
Outer Product | |
A∘g |
Bind | |
f∘B |
||
f∘g |
Beside | |
f⍤B |
Rank | |
f⍤g |
Atop | |
f⍥g |
Over | |
f@v |
At | |
f⍠B |
Variant | |
f⌸ |
Key | |
f⌺B |
Stencil | |
A⌶ |
I-Beam | |
f& |
Spawn | |
f[B] |
Axis |