4,501
edits
(→Versions: High-rank Index Of in 14.0) |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
| index origin = 0 or 1 | | index origin = 0 or 1 | ||
| function styles = [[tradfn]], [[dfn]], [[tacit]] | | function styles = [[tradfn]], [[dfn]], [[tacit]] | ||
| numeric types = complex floats, decimal float | | numeric types = [[complex]] floats, [[decimal float]]s | ||
| unicode support = full | | unicode support = full | ||
| released = 1983 | | released = 1983 | ||
Line 20: | Line 20: | ||
| run online = [https://tryapl.org/ TryAPL] | | run online = [https://tryapl.org/ TryAPL] | ||
}} | }} | ||
:''For the chat bot, see [[APL Orchard#Chat bot]].'' | |||
'''Dyalog APL''', or simply '''Dyalog''', is a modern APL in the [[APL2]] tradition, first released by British company [[Dyalog Ltd.|Dyadic Systems Ltd.]] (now Dyalog Ltd.) in 1983 for the Zylog Z80 processor (the name ''Dyalog'' is a portmanteau of ''Dyadic'' and ''Zylog''). Dyalog supports several platforms and interfaces with many languages and runtimes including native [[wikipedia:Shared library|shared libraries]], [[.NET]], the [[wikipedia:Java virtual machine|JVM]], [[wikipedia:R (programming language)|R]], and [[wikipedia:Python (programming language)|Python]]. It is actively developed and has introduced many new primitives and concepts to array programming. Major categories of features introduced to APL by Dyalog are [[tacit]] programming by allowing named [[derived function]]s and later [[train]]s, lexically-scoped functional programming using [[dfn]]s, [[namespace]]s and [[object-oriented programming]], and the addition of [[leading axis theory]] and the [[Rank operator]] to the [[nested array model|nested array]] paradigm. | '''Dyalog APL''', or simply '''Dyalog''', is a modern APL in the [[APL2]] tradition, first released by British company [[Dyalog Ltd.|Dyadic Systems Ltd.]] (now Dyalog Ltd.) in 1983 for the Zylog Z80 processor (the name ''Dyalog'' is a portmanteau of ''Dyadic'' and ''Zylog''). Dyalog supports several platforms and interfaces with many languages and runtimes including native [[wikipedia:Shared library|shared libraries]], [[.NET]], the [[wikipedia:Java virtual machine|JVM]], [[wikipedia:R (programming language)|R]], and [[wikipedia:Python (programming language)|Python]]. It is actively developed and has introduced many new primitives and concepts to array programming. Major categories of features introduced to APL by Dyalog are [[tacit]] programming by allowing named [[derived function]]s and later [[train]]s, lexically-scoped functional programming using [[dfn]]s, [[namespace]]s and [[object-oriented programming]], and the addition of [[leading axis theory]] and the [[Rank operator]] to the [[nested array model|nested array]] paradigm. | ||
In 1995, two Dyalog developers—[[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 Dyalog developers—[[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. | ||
== Platforms == | |||
Besides for working out-of-the-box on Windows, macOS, and AIX, Dyalog APL runs on many Linuxes. However, to function, some require additional action beyond simple installation. As of 2019-05-15, the necessary actions for versions 16.0, 17.0, and 17.1 are: | |||
{| class=wikitable | |||
! Distribution !! Action | |||
|- | |||
|Debian 8.2, 9.8, 9.9 || no pre-reqs | |||
|- | |||
|Fedora 29, 30 || <code>dnf install ncurses-compat-libs</code> | |||
|- | |||
|Linux Mint 18.0, 19.0|| no pre-reqs | |||
|- | |||
|openSUSE 15.0 || <code>zypper install libncurses5</code> | |||
|- | |||
|CentOS/RedHat 6 || not supported for 17.1 as glibc is at too low a level | |||
|- | |||
|CentOS/RedHat 7 || no pre-reqs | |||
|- | |||
|RedHat 8 || <code>rpm -Uvh ncurses-compat-libs</code> (note: RH8 would not install in a VM) | |||
|- | |||
|Ubuntu 16.04, 18.04 || no pre-reqs | |||
|- | |||
|Ubuntu 19.04 || <code>apt-get install libtinfo5</code> | |||
|} | |||
== Versions == | == Versions == | ||
Line 77: | Line 102: | ||
| 10.1 || 2004 || July || Multiple arguments in [[tradfn]] headers, thread tokens, 64-bit component files, value tips | | 10.1 || 2004 || July || Multiple arguments in [[tradfn]] headers, thread tokens, 64-bit component files, value tips | ||
|- | |- | ||
| | | [[Dyalog_APL_versions#11.0|11.0]] || 2006 || October || [[Object-oriented programming]] (classes, objects, interfaces) modelled after [[wikipedia:C-Sharp_|C#]], [[Squad indexing|Index]] (<source lang=apl inline>⌷</source>), [[Power operator]] (<source lang=apl inline>⍣</source>), [[GCD]] (<source lang=apl inline>∨</source>), [[LCM]] (<source lang=apl inline>∧</source>) | ||
|- | |- | ||
| | | [[Dyalog_APL_versions#12.0|12.0]] || 2008 || August || [[Unicode]] support (<source lang=apl inline>⎕AVU</source>, <source lang=apl inline>⎕UCS</source>), <source lang=apl inline>⎕FCOPY</source>, <source lang=apl inline>⎕FPROPS</source> | ||
|- | |- | ||
| | | [[Dyalog_APL_versions#12.1|12.1]] || 2009 || November || [[I-Beam]] (<source lang=apl inline>⌶</source>), [[Table]] (<source lang=apl inline>⍪</source>), <source lang=apl inline>⎕XML</source>, <source lang=apl inline>⎕FCHK</source>, [[User command]]s | ||
|- | |- | ||
| | | [[Dyalog_APL_versions#13.0|13.0]] || 2011 || April || [[Left]] (<source lang=apl inline>⊣</source>), [[Right]] (<source lang=apl inline>⊢</source>), [[Variant]] (<source lang=apl inline>⍠</source>), <source lang=apl inline>⎕OPT</source>, <source lang=apl inline>⎕R</source>, <source lang=apl inline>⎕S</source>, <source lang=apl inline>⎕PROFILE</source>, <source lang=apl inline>⎕RSI</source>, [[complex number]] and [[decimal float]] support, short arguments for [[Take]], [[Drop]], and [[Squad indexing|Index]] (<source lang=apl inline>↑</source>, <source lang=apl inline>↓</source>, <source lang=apl inline>⌷</source>) | ||
|- | |- | ||
| | | [[Dyalog_APL_versions#13.1|13.1]] || 2012 || April || <source lang=apl inline>⎕DMX</source>, <source lang=apl inline>⎕FHIST</source> | ||
|- | |- | ||
| | | [[Dyalog_APL_versions#13.2|13.2]] || 2013 || January || Array [[Editor]] | ||
|- | |- | ||
| [[Dyalog_APL_versions#14.0|14.0]] || 2014 || June || [[Train]]s, [[Tally]] (<source lang=apl inline>≢</source>), [[Key]] (<source lang=apl inline>⌸</source>), [[Rank operator]] (<source lang=apl inline>⍤</source>), [[High-rank set functions|high-rank]] [[Index Of]], multi-threading with [[future]]s and [[isolate]]s | | [[Dyalog_APL_versions#14.0|14.0]] || 2014 || June || [[Train]]s, [[Tally]] (<source lang=apl inline>≢</source>), [[Key]] (<source lang=apl inline>⌸</source>), [[Rank operator]] (<source lang=apl inline>⍤</source>), [[High-rank set functions|high-rank]] [[Index Of]], multi-threading with [[future]]s and [[isolate]]s | ||
Line 255: | Line 280: | ||
| <source lang=apl inline>f∘g</source> ||colspan=2| [[Beside]] | | <source lang=apl inline>f∘g</source> ||colspan=2| [[Beside]] | ||
|- | |- | ||
| <source lang=apl inline>f⍤B</source> ||colspan=2| [[Rank]] | | <source lang=apl inline>f⍤B</source> ||colspan=2| [[Rank operator|Rank]] | ||
|- | |- | ||
| <source lang=apl inline>f⍤g</source> ||colspan=2| [[Atop]] | | <source lang=apl inline>f⍤g</source> ||colspan=2| [[Atop]] |