Assignment: Difference between revisions

Jump to navigation Jump to search
Function assignment section, with references from HOPL4
mNo edit summary
(Function assignment section, with references from HOPL4)
 
Line 63: Line 63:
0 0 0
0 0 0
</syntaxhighlight>
</syntaxhighlight>
== Function assignment ==
In modern dialects, the right hand side of assignment may be a [[function]] (or possibly an [[operator]]). This allows [[Anonymous function|anonymous]] and [[tacit]] functions to be named.
<syntaxhighlight lang=apl>
      sum←+/
      sum ⍳10
55
</syntaxhighlight>
Before the 1980s, only arrays could be assigned: [[defined function]]s included the function name in the header in order to associate it with the function, and [[derived function]]s could not be named directly. Instead the programmer would define a function that explicitly called that derived function on its arguments. [[Iverson]]'s 1978 paper [[Operators and Functions]] used a new [[glyph]], an assignment arrow with a bar above (that is, [[overstruck]] with a [[high minus]]), as [[Adin Falkoff]] objected to the use of the unmodified assignment arrow.<ref>[[Roger Hui]] and [[Morten Kromberg]]. [https://dl.acm.org/doi/abs/10.1145/3386319 ''APL since 1978'']. ACM HOPL IV. 2020-06.</ref> However, Iverson used the assignment arrow directly in several papers he co-authored beginning in 1980.<ref>[[Bob Bernecky]] and [[Ken Iverson]]. [https://www.jsoftware.com/papers/opea.htm Operators and Enclosed Arrays] at [[IPSA '80]]</ref><ref>[[Ken Iverson]] and Peter Wooster. [https://dl.acm.org/doi/abs/10.1145/390007.805349 A function definition operator] at [[APL81]].</ref><ref>[[Ken Iverson]] and [[Arthur Whitney]]. [https://doi.org/10.1145/800071.802236 "Practical uses of a model of APL"] ([https://www.jsoftware.com/papers/APLModel.htm web]) at [[APL82]].</ref> Function assignment was added to [[Dyalog APL]] in version 4.0 in 1986. It was a key feature of [[J]], which supports only anonymous and tacit functions.
== External Links ==
== External Links ==


Line 70: Line 82:
* [https://microapl.com/apl_help/ch_020_010_110.htm APLX]
* [https://microapl.com/apl_help/ch_020_010_110.htm APLX]
* J: [https://code.jsoftware.com/wiki/Vocabulary/eqdot local], [https://code.jsoftware.com/wiki/Vocabulary/eqco global]
* J: [https://code.jsoftware.com/wiki/Vocabulary/eqdot local], [https://code.jsoftware.com/wiki/Vocabulary/eqco global]
== References ==
<references/>
{{APL built-ins}}[[Category:Primitive functions]]
{{APL built-ins}}[[Category:Primitive functions]]

Navigation menu