Partitioned Enclose: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
m (Text replacement - "{{APL built-ins}}" to "{{APL built-ins}}Category:Primitive functions") |
||
Line 39: | Line 39: | ||
===Documentation=== | ===Documentation=== | ||
* [https://help.dyalog.com/latest/index.htm#Language/Primitive%20Functions/Partitioned%20Enclose.htm Dyalog] | * [https://help.dyalog.com/latest/index.htm#Language/Primitive%20Functions/Partitioned%20Enclose.htm Dyalog] | ||
{{APL built-ins}} | {{APL built-ins}}[[Category:Primitive functions]] |
Revision as of 13:43, 30 April 2020
⊂
|
Partitioned Enclose (⊂
) is a dyadic function which splits its right argument into differently sized pieces as determined by the left argument.
In the simplest case, and on a vector right argument, the corresponding element in the left argument indicates where divisions begin:
1 0 1 0 0 0 0⊂'HiEarth' ┌──┬─────┐ │Hi│Earth│ └──┴─────┘
Works in: Dyalog APL
Almost all dialects restrict the left argument to provide only this functionality. However, the left argument can be interpreted as a count of how many partitions begin with a particular position:
2 0 3 0 0 0 0⊂'HiEarth' ┌┬──┬┬┬─────┐ ││Hi│││Earth│ └┴──┴┴┴─────┘
Additional trailing empty divisions are thus created by adding an additional division count corresponding to the position beyond the end of the right argument:
1 0 1 0 0 0 0 1⊂'HiEarth' ┌──┬─────┬┐ │Hi│Earth││ └──┴─────┴┘
This interpretation allows a simple definition of a split-into-lengths function:
Split←{⍵ ⊂⍨ ⍸⍣¯1 +\ ¯1↓1,⍺} 3 3 4 Split 'HowAreYou?' ┌───┬───┬────┐ │How│Are│You?│ └───┴───┴────┘
Works in: Extended Dyalog APL