Dyalog APL versions: Difference between revisions

Jump to navigation Jump to search
m
Text replacement - "High-rank set functions" to "Major cell search"
m (pre-10.0 ref)
m (Text replacement - "High-rank set functions" to "Major cell search")
 
(One intermediate revision by one other user not shown)
Line 108: Line 108:
Under the direction of [[Roger Hui]], who had been hired by [[Dyalog Ltd.]] in 2011, several features adapted from [[J]] were added. Version 14.0 began the adoption in Dyalog APL of array programming's [[leading axis model]], with built-ins [[Tally]] (<syntaxhighlight lang=apl inline>≢</syntaxhighlight>), [[Key]] (<syntaxhighlight lang=apl inline>⌸</syntaxhighlight>), and the [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>). [[Function train]]s, another J feature, were also introduced. Of these, Rank differs from J's definition because it does not allow complete [[leading axis agreement]]—instead, two arguments must have identical [[frame]]s or one frame must be empty—and Key has an added monadic case, and differs in that the operand is passed a left argument indicating the unique element used.
Under the direction of [[Roger Hui]], who had been hired by [[Dyalog Ltd.]] in 2011, several features adapted from [[J]] were added. Version 14.0 began the adoption in Dyalog APL of array programming's [[leading axis model]], with built-ins [[Tally]] (<syntaxhighlight lang=apl inline>≢</syntaxhighlight>), [[Key]] (<syntaxhighlight lang=apl inline>⌸</syntaxhighlight>), and the [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>). [[Function train]]s, another J feature, were also introduced. Of these, Rank differs from J's definition because it does not allow complete [[leading axis agreement]]—instead, two arguments must have identical [[frame]]s or one frame must be empty—and Key has an added monadic case, and differs in that the operand is passed a left argument indicating the unique element used.


Further changes were made in conjunction with the introduction of [[Rank operator|Rank]] and [[leading axis theory]]. [[Index Of]] was [[High-rank set functions|extended]] (as in [[J]]) to allow a left argument of [[rank]] greater than 1, searching [[major cell]]s of the left argument. [[Mix]] was extended to increase the rank of each element in its argument to a common rank, rather than giving a [[RANK ERROR]] if they had unequal ranks. This change brought the behavior of Mix into alignment with the result array combination used by the [[Rank operator]] and [[Key]]. An unrelated change was to extend Mix with [[Function axis|axis]] to allow the axis to be a [[vector]] indicating the final positions of each axis of the argument elements (rather than only a [[singleton]] indicating the position of the first axis). This change was made to apply only with a [[migration level]] setting of at least 2; it was extended to all migration levels in [[#18.0|version 18.0]].
Further changes were made in conjunction with the introduction of [[Rank operator|Rank]] and [[leading axis theory]]. [[Index Of]] was [[Major cell search|extended]] (as in [[J]]) to allow a left argument of [[rank]] greater than 1, searching [[major cell]]s of the left argument. [[Mix]] was extended to increase the rank of each element in its argument to a common rank, rather than giving a [[RANK ERROR]] if they had unequal ranks. This change brought the behavior of Mix into alignment with the result array combination used by the [[Rank operator]] and [[Key]]. An unrelated change was to extend Mix with [[Function axis|axis]] to allow the axis to be a [[vector]] indicating the final positions of each axis of the argument elements (rather than only a [[singleton]] indicating the position of the first axis). This change was made to apply only with a [[migration level]] setting of at least 2; it was extended to all migration levels in [[#18.0|version 18.0]].


This version allowed [[monadic operator]]s to be manipulated more easily: beginning in 14.0, they can be [[Assignment|named]], grouped with parentheses, and displayed in the [[session]]. It also introduced a new way to form a monadic operator called [[right operand currying]]: a [[dyadic operator]] along with an [[operand]] to its right produces a [[derived operator]]. These changes did not extend to naming, parenthesizing, or displaying dyadic operators, nor to binding a left operant to a dyadic operator.
This version allowed [[monadic operator]]s to be manipulated more easily: beginning in 14.0, they can be [[Assignment|named]], grouped with parentheses, and displayed in the [[session]]. It also introduced a new way to form a monadic operator called [[right operand currying]]: a [[dyadic operator]] along with an [[operand]] to its right produces a [[derived operator]]. These changes did not extend to naming, parenthesizing, or displaying dyadic operators, nor to binding a left operant to a dyadic operator.
Line 207: Line 207:


== 18.2 ==
== 18.2 ==
[https://www.dyalog.com/dyalog/dyalog-versions/182.htm Release announcement], [http://docs.dyalog.com/18.2/Dyalog%20Version%2018.2%20Release%20Notes.pdf notes (pdf)]
[https://www.dyalog.com/dyalog/dyalog-versions/182.htm Release announcement], [https://docs.dyalog.com/18.2/Dyalog%20Version%2018.2%20Release%20Notes.pdf notes (pdf)]


Version 18.2 was released in March 2022. It's based on version 17.1, merged with selected changes from 18.1.<ref name="v18.2"/> New features include the ability to run as a shell script, system function <syntaxhighlight lang=apl inline>⎕ATX</syntaxhighlight> to get workspace metadata, and improvements to Windows Explorer integration, Docker support, and RIDE.
Version 18.2 was released in March 2022. It's based on version 17.1, merged with selected changes from 18.1.<ref name="v18.2"/> New features include the ability to run as a shell script, system function <syntaxhighlight lang=apl inline>⎕ATX</syntaxhighlight> to get workspace metadata, and improvements to Windows Explorer integration, Docker support, and RIDE.
== 19.0 ==
[https://www.dyalog.com/dyalog/dyalog-versions/190.htm Release announcement], [https://docs.dyalog.com/19.0/Dyalog%20Version%2019.0%20Release%20Notes.pdf notes (pdf)]
Version 19.0 was released in March 2024. It introduces native support for 64-bit ARM (macOS and Raspberry Pi). New features include a new system function, <syntaxhighlight lang=apl inline>⎕TALLOC</syntaxhighlight> which allows independent components to safely use tokens for thread synchronisation without knowledge of each other and an experimental Health Monitor protocol that can be used to monitor the status of large collections of APL processes. It is the first version to ship with [[Tatin]] as part of the installation package.


== References ==
== References ==
<references/>
<references/>
{{APL dialects}}[[Category:Dyalog APL]][[Category:Lists]]
{{APL dialects}}[[Category:Dyalog APL]][[Category:Lists]]

Navigation menu