Nest
Jump to navigation
Jump to search
Nest (⊆
), or Enclose If Simple, is a monadic primitive function that applies Enclose to the given argument, but only if it is simple. Nest was first introduced in Dyalog APL 16.0.
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'∊¨⍵}
Works in: Dyalog APL
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
Works in: Dyalog APL
But if the user gives only one word, EWords
will count E's in each letter instead, giving the wrong answer:
EWords 'SLEEP' 2
Works in: Dyalog APL
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
Works in: Dyalog APL
External links
Documentation