nvec ← {sepr} ##.ltov lvec ⍝ Lines to nested vector.
lvec ← {sepr} ##.vtol nvec ⍝ Nested vector to lines.
Each function is an approximate equivalent of the xutils AP function of the same
name. [ltov] and [vtol] convert between nested vectors and →Line_vectors←.
Note that [vtol] appends a [sepr] character after each item of the argument, in-
cluding the last. This means that, in general: lvec ≢ vtol ltov lvec.
More generally, [sepr] may be a vector of separators of any shape or depth, see
examples below.
Examples:
nl←⎕ucs 13 ⍝ newline.
lvec←'fooling around', nl, 'with barrels', nl, 'in alleys'
lvec ⍝ line vector.
fooling around
with barrels
in alleys
ltov lvec ⍝ nested vector.
┌──────────────┬────────────┬─────────┐
│fooling around│with barrels│in alleys│
└──────────────┴────────────┴─────────┘
nl=lvec ⍝ note, no trailing nl:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
nl=vtol ltov lvec ⍝ note extra nl:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
(nl,' ')ltov lvec ⍝ split at newline or blank.
┌───────┬──────┬────┬───────┬──┬──────┐
│fooling│around│with│barrels│in│alleys│
└───────┴──────┴────┴───────┴──┴──────┘
0 ltov 1 2 3 0 4 5 6 0 7 8 9 ⍝ split numeric vector.
┌─────┬─────┬─────┐
│1 2 3│4 5 6│7 8 9│
└─────┴─────┴─────┘
⊢ rainbow ← 'red' 'and' 'yellow' ',' 'pink' 'and' 'green'
┌───┬───┬──────┬─┬────┬───┬─────┐
│red│and│yellow│,│pink│and│green│
└───┴───┴──────┴─┴────┴───┴─────┘
(⊂'and')ltov rainbow ⍝ split nested vector
┌─────┬───────────────┬───────┐
│┌───┐│┌──────┬─┬────┐│┌─────┐│
││red│││yellow│,│pink│││green││
│└───┘│└──────┴─┴────┘│└─────┘│
└─────┴───────────────┴───────┘
'and' ',' ltov rainbow
┌─────┬────────┬──────┬───────┐
│┌───┐│┌──────┐│┌────┐│┌─────┐│
││red│││yellow│││pink│││green││
│└───┘│└──────┘│└────┘│└─────┘│
└─────┴────────┴──────┴───────┘
See also: Line_vectors
Back to: contents
Back to: Workspaces