cmat ← {dec←0 {cen←0}} ##.disp array ⍝ Boxed sketch of nested array. A compact alternative to the →display← function for nested arrays. By default, subarrays are shown in plain boxes. With optional left argument [dec] set to 1, the shape of the containing array is shown in its top-left corner and for each subarray, item type is shown lower-left and shape is shown lower-right. NB: The default display of nested arrays can be boxed by default, using user- command: ]boxing. ⍳2 2 ⍝ unboxed display 1 1 1 2 2 1 2 2 ]boxing ON Was OFF ⍳2 2 ⍝ boxed output ┌───┬───┐ │1 1│1 2│ ├───┼───┤ │2 1│2 2│ └───┴───┘ The optional left argument of 1 or 2 boolean flags (default 0 0) controls: ┌───── dec: type and shape decoration: decorated (otherwise, plain) │ ┌─── cen: items within boxes aligned: centred (otherwise, top-left) │ │ 0 0 disp .. With decoration turned off, the function can be used to format simple tables for display in the session; see example below. With decoration on, _all_ of the information provided by →display← is present, except for the case of a single digit number, whose type (~) may be obscured by its shape (─/→) decoration. 1 disp 8 (,8) 88 (,88) ⍝ type (~) obscured in first two cells. ┌→┬─┬──┬──┐ │8│8│88│88│ └─┴→┴~─┴~→┘ Examples: ditty ← 2 2⍴'Tea'(2 1⍴4 2)'&'(2 40) ⍝ nested array vs←{(⍺⍺ ⍵)(⍵⍵ ⍵)} ⍝ comparison operator disp vs display ditty ⍝ comparison disp vs display ┌───┬────┐ ┌→─────────────┐ │Tea│4 │ ↓ ┌→──┐ ┌→┐ │ │ │2 │ │ │Tea│ ↓4│ │ ├───┼────┤ │ └───┘ │2│ │ │& │2 40│ │ └~┘ │ └───┴────┘ │ ┌→───┐ │ │ & │2 40│ │ │ - └~───┘ │ └∊─────────────┘ 1∘disp vs display ditty ⍝ ... with decoration ┌→──┬────┐ ┌→─────────────┐ ↓Tea│4 │ ↓ ┌→──┐ ┌→┐ │ │ │2 ↓ │ │Tea│ ↓4│ │ ├──→┼~──→┤ │ └───┘ │2│ │ │& │2 40│ │ └~┘ │ └───┴~──→┘ │ ┌→───┐ │ │ & │2 40│ │ │ - └~───┘ │ └∊─────────────┘ +/∘∊¨ ∊∘'→↓~'¨ 1∘disp vs display ditty ⍝ same no of →↓~ present in both 8 8 1 disp array ⍝ [disp] sketch of array. ┌→──┬─────────┬─────────┬────────┐ ↓3.1│ Vector │ Matrix ↓ Array ⍒ ├~──┼────────→┼────────→┼───────→┤ │┌─┐│┌→──┬───┐│┌→──┬───┐│┌→─────┐│ ││0│││Q 8│K 9││⌽0 0│0 0││⍒ # # ││ │└⊖┘│└+─→┴+─→┘│└~─→┴~─→┘⌽└#────→┘⍒ └───┴────────→┴────────→┴───────→┘ display array ⍝ Compare with full [display]. ┌→──────────────────────────────────────────────────────┐ ↓ ┌→─────┐ ┌→─────┐ ┌┌→────┐ │ │ 3.1 │Vector│ ↓Matrix│ ↓↓Array│ │ │ └──────┘ └──────┘ └└─────┘ │ │ ┌─────┐ ┌→────────────┐ ┌→────────────┐ ┌┌→─────────┐ │ │ │ ┌⊖┐ │ │ ┌→──┐ ┌→──┐ │ ⌽ ┌→──┐ ┌→──┐ │ ↓↓ ┌→─────┐ │ │ │ │ │0│ │ │ │Q 8│ │K 9│ │ │ │0 0│ │0 0│ │ ││ │ # # │ │ │ │ │ └~┘ │ │ └+──┘ └+──┘ │ │ └~──┘ └~──┘ │ ││ └#─────┘ │ │ │ └∊────┘ └∊────────────┘ └∊────────────┘ └└∊─────────┘ │ └∊──────────────────────────────────────────────────────┘ ⍝ Simple table in session: disp'%' 'Eye Poke' 'Kumquat'⍪↑('Guys' 60 40)('Gals' 20 80) ┌────┬────────┬───────┐ │ % │Eye Poke│Kumquat│ ├────┼────────┼───────┤ │Guys│60 │40 │ ├────┼────────┼───────┤ │Gals│20 │80 │ └────┴────────┴───────┘ ⍝ The following example shows the effect of permutations of left-argument ⍝ options: ⍝ ⍝ dec: type and shape border decorations off/on, ⍝ cen: centre-alignment within box off/on. opts ← ⎕io<⍳2 2 ⍝ all option permutations labs ← 'decorated, ' 'centred' ⍝ option labels with: un←{∊((~⍺)/¨⊂'un'),¨⍵} ⍝ un- prefix where appropriate stuff ← '' 'like this'(3 0⍴'') ⍝ content of all but top left cell opts {⍺ disp 2 2⍴(⊂⍺ un ⍵),stuff}¨ ⊂labs ┌──────────────────────┬┐ ┌────────────────────┬┐ │undecorated, uncentred││ │undecorated, centred││ ├──────────────────────┼┤ ├────────────────────┼┤ │like this ││ │ ││ │ ││ │ like this ││ │ ││ │ ││ └──────────────────────┴┘ └────────────────────┴┘ ┌→───────────────────┬─┐ ┌→─────────────────┬─┐ ↓decorated, uncentred│ │ ↓decorated, centred│ │ ├───────────────────→┼⊖┤ ├─────────────────→┼⊖┤ │like this │ │ │ │ │ │ │ │ │ like this │ │ │ │ ↓ │ │ ↓ └───────────────────→┴⊖┘ └─────────────────→┴⊖┘ See also: display dsp box Back to: contents Back to: Workspaces