Disclose: Difference between revisions
m (Text replacement - "</source>" to "</syntaxhighlight>") |
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) |
(No difference)
|
Revision as of 01:37, 1 February 2024
⊃
|
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 ↑
as Mix and ⊃
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.