Disclose: Difference between revisions

Jump to navigation Jump to search
m (Marshall moved page Disclose (disambiguation) to Disclose over a redirect without leaving a redirect: wikipedia:wikipedia:Broad-concept article fits this better than a disambiguation page)
(Explain how SHARP-family Mix is just Disclose rank 0)
Line 5: Line 5:


Early experiments in array nesting usually defined a primitive to extract the contents of a nested [[scalar]], but did not always specify how it should behave on an array. [[Jim Brown]]'s "A Generalization of APL",<ref>[[Jim Brown]]. [http://www.softwarepreservation.org/projects/apl/Books/AGENERALIZATIONOFAPL "A Generalization of APL"] (Ph.D. thesis). 1971.</ref> stated that it "may be undefined" on non-scalar arrays. However, all dialects do define it on non-scalars, but with differing definitions.
Early experiments in array nesting usually defined a primitive to extract the contents of a nested [[scalar]], but did not always specify how it should behave on an array. [[Jim Brown]]'s "A Generalization of APL",<ref>[[Jim Brown]]. [http://www.softwarepreservation.org/projects/apl/Books/AGENERALIZATIONOFAPL "A Generalization of APL"] (Ph.D. thesis). 1971.</ref> stated that it "may be undefined" on non-scalar arrays. However, all dialects do define it on non-scalars, but with differing definitions.
In the [[SHARP APL]] family, the behavior of Mix follows automatically by giving Disclose a [[function rank]] of 0. Disclose returns the contents of each [[box]] in an array, and rank treats these results as the cells of a result array.
== History ==
== History ==
The two [[glyph]]s commonly used for Disclose are [[Right Shoe]] and [[Up Arrow]]. The original [[NARS]] paper specified monadic <syntaxhighlight lang=apl inline>↑</syntaxhighlight> as Mix and <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> as First, so [[Dyalog]] and [[STSC]] implemented [[Dyalog APL]] and [[APL*PLUS]] accordingly. [[IBM]] decided to swap them in [[APL2]], causing the others to implement [[Migration Level]], as APL2 was seen as the authoritative implementation. When the ISO [[standard]] was written, it closely followed APL2, causing [[APLX]], [[NARS2000]], [[GNU APL]], and [[ngn/apl]] to adopt these notations. However, ngn/apl later switched to follow Dyalog.
The two [[glyph]]s commonly used for Disclose are [[Right Shoe]] and [[Up Arrow]]. The original [[NARS]] paper specified monadic <syntaxhighlight lang=apl inline>↑</syntaxhighlight> as Mix and <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> as First, so [[Dyalog]] and [[STSC]] implemented [[Dyalog APL]] and [[APL*PLUS]] accordingly. [[IBM]] decided to swap them in [[APL2]], causing the others to implement [[Migration Level]], as APL2 was seen as the authoritative implementation. When the ISO [[standard]] was written, it closely followed APL2, causing [[APLX]], [[NARS2000]], [[GNU APL]], and [[ngn/apl]] to adopt these notations. However, ngn/apl later switched to follow Dyalog.