Disclose: Difference between revisions
No edit summary |
m (Text replacement - "<source" to "<syntaxhighlight") |
||
Line 6: | Line 6: | ||
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. | ||
== History == | == History == | ||
The two [[glyph]]s commonly used for Disclose are [[Right Shoe]] and [[Up Arrow]]. The original [[NARS]] paper specified monadic < | The two [[glyph]]s commonly used for Disclose are [[Right Shoe]] and [[Up Arrow]]. The original [[NARS]] paper specified monadic <syntaxhighlight lang=apl inline>↑</source> as Mix and <syntaxhighlight lang=apl inline>⊃</source> 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. | ||
== References == | == References == | ||
<references/> | <references/> | ||
{{APL built-ins}}[[Category:Primitive functions]] | {{APL built-ins}}[[Category:Primitive functions]] |
Revision as of 21:12, 10 September 2022
⊃
|
Disclose (⊃
) or Reveal is a monadic function in nested APLs which reduces the level of nesting of an array. It may refer to:
- First, a the function extracting its argument's initial element in ravel order.
- Mix, a function combining its argument's elements (requiring conforming shapes or padding with fill elements).
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",[1] stated that it "may be undefined" on non-scalar arrays. However, all dialects do define it on non-scalars, but with differing definitions.
History
The two glyphs commonly used for Disclose are Right Shoe and Up Arrow. The original NARS paper specified monadic <syntaxhighlight lang=apl inline>↑</source> as Mix and <syntaxhighlight lang=apl inline>⊃</source> 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.
References
- ↑ Jim Brown. "A Generalization of APL" (Ph.D. thesis). 1971.