Nest: Difference between revisions
mNo edit summary |
m (Text replacement - "http://help.dyalog.com" to "https://help.dyalog.com") |
||
Line 37: | Line 37: | ||
=== Documentation === | === Documentation === | ||
* [ | * [https://help.dyalog.com/latest/#Language/Primitive%20Functions/Nest.htm Dyalog] | ||
== References == | == References == |
Revision as of 14:41, 14 July 2020
⊆ ⊃
|
Nest (⊆
, ⊃
), also called Conditional Enclose or Enclose If Simple (commonly abbreviated as eis), is a monadic primitive function that applies Enclose to the given argument, but only if it is simple. Nest first appeared as an extension to SHARP APL[1] using the glyph ⊃
, and was added to Dyalog APL 16.0 using the glyph ⊆
.
Examples
Nest is useful when a nested array is expected but the user may supply a simple array instead. For example, consider a function which expects one or more English words in uppercase and counts the words that include the letter E.
EWords←{+/'E'∊¨⍵}
If the user gives multiple words in the usual notation, it works correctly:
EWords 'I' 'ATE' 'DINNER' 'AND' 'WENT' 'TO' 'SLEEP' ⍝ ATE, DINNER, WENT, SLEEP 4
But if the user gives only one word, EWords
will count E's in each letter instead, giving the wrong answer:
EWords 'SLEEP' 2
In this case, the programmer can apply Nest to the argument so that the array has a consistent structure.
EWords2←{+/'E'∊¨⊆⍵} EWords2 'I' 'ATE' 'DINNER' 'AND' 'WENT' 'TO' 'SLEEP' 4 EWords2 'SLEEP' 1
External links
Documentation
References
- ↑ "Language Extensions of May 1983". SATN-45, 1983-05-02.