Train: Difference between revisions

Jump to navigation Jump to search
→‎History: Hui's noun-verb-verb train
m (Text replacement - "</source>" to "</syntaxhighlight>")
(→‎History: Hui's noun-verb-verb train)
Line 46: Line 46:
Function trains were first presented under the name "Phrasal forms" by [[Ken Iverson]] and [[Eugene McDonnell]] in a 1989 paper<ref>[[Ken Iverson]] and [[Eugene McDonnell]]. [http://www.jsoftware.com/papers/fork.htm Phrasal forms] at [[APL89]].</ref> of the same name. They called the 2-function form a "hook" and the 3-function form a "fork" based on the shapes of the function call diagrams. On the return flight from [[APL88]], Iverson found the idea when he woke up from a nap and then developed it together with McDonnell.<ref>[[Roger Hui|Hui, Roger]]. [http://keiapl.org/rhui/remember.htm "Remembering Ken Iverson"]. 2004-11.</ref> The use of syntax for trains followed a long history of attempts to define train-like behavior in terms of operators.<ref>[[Roger Hui]] and [[Morten Kromberg]]. [https://dl.acm.org/doi/abs/10.1145/3386319 ''APL since 1978'']. §3.8 Trains Encore. ACM [[HOPL]] IV. 2020-06.</ref>
Function trains were first presented under the name "Phrasal forms" by [[Ken Iverson]] and [[Eugene McDonnell]] in a 1989 paper<ref>[[Ken Iverson]] and [[Eugene McDonnell]]. [http://www.jsoftware.com/papers/fork.htm Phrasal forms] at [[APL89]].</ref> of the same name. They called the 2-function form a "hook" and the 3-function form a "fork" based on the shapes of the function call diagrams. On the return flight from [[APL88]], Iverson found the idea when he woke up from a nap and then developed it together with McDonnell.<ref>[[Roger Hui|Hui, Roger]]. [http://keiapl.org/rhui/remember.htm "Remembering Ken Iverson"]. 2004-11.</ref> The use of syntax for trains followed a long history of attempts to define train-like behavior in terms of operators.<ref>[[Roger Hui]] and [[Morten Kromberg]]. [https://dl.acm.org/doi/abs/10.1145/3386319 ''APL since 1978'']. §3.8 Trains Encore. ACM [[HOPL]] IV. 2020-06.</ref>


Trains as defined in Phrasal Forms were included in the first versions of [[J]] in 1990. They were added to [[NARS2000]] by 2009,<ref>NARS2000 Wiki. [http://wiki.nars2000.org/index.php?title=Trains&oldid=438 Trains]. Old revision: 2009-02-18.</ref> and [[ngn/apl]] had partial support in 2013. [[K]] defined a different and simpler kind of function train based on linear evaluation.
Trains as defined in Phrasal Forms were included in the first versions of [[J]] in 1990. [[Roger Hui]] defined the case where the left tine is an array ("noun verb verb") in 2005.<ref>[[Roger Hui]]. [https://www.jsoftware.com/papers/KEIQA.htm#nvv Ken Iverson Quotations and Anecdotes].</ref><ref>[[Roger Hui]]. [http://www.jsoftware.com/pipermail/general/2005-April/021668.html N0 V1 V2 Implemented]. J forums. 2005-04-12.</ref> They were added to [[NARS2000]] by 2009,<ref>NARS2000 Wiki. [http://wiki.nars2000.org/index.php?title=Trains&oldid=438 Trains]. Old revision: 2009-02-18.</ref> and [[ngn/apl]] had partial support in 2013. [[K]] defined a different and simpler kind of function train based on linear evaluation.


The train definition used in most APL dialects changes the 2-train from a hook to an [[Atop]] in behavior. This change was made in [[Dyalog APL 14.0]] in 2014, under the direction of [[Roger Hui]], who had argued for it by 2006.<ref>[[Roger Hui]]. [https://code.jsoftware.com/wiki/Essays/Hook_Conjunction%3F Hook Conjunction?] J Wiki. First published 2006-05-24.</ref> It now appears in [[APL\iv]], [[dzaima/APL]], [[April]], and [[BQN]], and also matches the function composition featured in [[I]] in 2012.
The train definition used in most APL dialects changes the 2-train from a hook to an [[Atop]] in behavior. This change was made in [[Dyalog APL 14.0]] in 2014, under the direction of [[Roger Hui]], who had argued for it by 2006.<ref>[[Roger Hui]]. [https://code.jsoftware.com/wiki/Essays/Hook_Conjunction%3F Hook Conjunction?] J Wiki. First published 2006-05-24.</ref> It now appears in [[APL\iv]], [[dzaima/APL]], [[April]], and [[BQN]], and also matches the function composition featured in [[I]] in 2012.

Navigation menu