dsp←{⎕IO ⎕ML←1 ⍝ Reduced version of disp. (1=≡,⍵)∨0∊⍴⍵:⎕FMT ⍵ ⍝ simple or empty: char matrix ⍺←1 ⋄ top←'─'∘⍪⍣⍺ ⍝ top '─' bar if ⍺ 1≥⍴⍴⍵:{ ⍝ vector or scalar: bars←2{⍪(⌊/≢¨⍺ ⍵)/'│'}/⍵,0 ⍝ inter-item '│' separators join←{↑,/(⌈/≢¨⍵)↑¨⍵} ⍝ equalised rows cell-join 0 ¯1↓join top¨join¨↓⍉↑⍵ bars ⍝ join with top and separators }1 ∇¨⍵ ⍝ vector: formatted items subs←⍺ ∇¨⍵ ⍝ higher rank: formatted items rs cs←+/¨1⊂↑⍴¨subs ⍝ numbers of rows and cols dims←(mrs←⌈/rs)∘.,mcs←⌈/⍪⍉cs ⍝ max dimensions per row & col join←{↑⍺{⍺,⍺⍺,⍵}/⍵} ⍝ ⍺-join of vector ⍵ rows←(mrs/¨'│')join¨↓dims↑¨subs ⍝ complete rows with '│'-separated items hzs←'┼'join mcs/¨'─' ⍝ inter-row horizontal '─┼─' separators cells←{⍺⍪hzs⍪⍵}/rows ⍝ joined rows: array of 2D planes gaps←(⌽⍳¯2+⍴⍴⍵)/¨' ' ⍝ increasing cell gaps for higher ranks cjoin←{↑⍪/(⊂⍺),⍺⍺,⊂⍵} ⍝ vertical cell join with ⍺⍺ gap top⊃↑{⍺ cjoin⌿⍵}/gaps,⊂cells ⍝ cell-joining with increasing gaps } code_colours test script Back to: notes Back to: Workspaces