cmat ← ##.display array ⍝ Boxed display of array. cmat ← ##.displays array ⍝ .. with axis lengths. cmat ← ##.displayr array ⍝ .. .. and subarray depths. The argument array is displayed with boxes bordering each subarray. Characters embedded in the borders indicate subarray shape and type. Shape: ↓ → Non-zero axis. ⌽ ⊖ Zero axis. Type: ∊ Nested array. ~ Numeric. - Character. # Namespace reference. ∇ ⎕OR object. + Mixed type. Prototypical items of empty arrays (⌽ ⊖) are exposed. With one exception, [display] perfectly distinguishes arrays. That is to say, distinct arrays have distinct display forms. The exception, signalled by a '+' character in its left lower border, is a depth-1 (sub) array containing both characters and numbers. For example: display 88,'99'. Variations ---------- Inspired by David Rabenhorst's 1988 paper, Dick Bowman supplies two further versions of the display function displays ⍝ display with shape along top border. displayr ⍝ display with shape along axis borders and with depth. Compare the output from Dick's functions with the original: display 1 'a' 'abc' (2 3⍴⍳6) ⍝ "standard" display. ┌→──────────────────┐ │ ┌→──┐ ┌→────┐ │ │ 1 a │abc│ ↓1 2 3│ │ │ - └───┘ │4 5 6│ │ │ └~────┘ │ └∊──────────────────┘ displays 1 'a' 'abc' (2 3⍴⍳6) ⍝ with shape along top border. ┌→─4────────────────┐ │ ┌→─3┐ ┌→─2 3┐ │ │ 1 a │abc│ ↓1 2 3│ │ │ - └───┘ │4 5 6│ │ │ └~────┘ │ └∊──────────────────┘ displayr 1 'a' 'abc' (2 3⍴⍳6) ⍝ with shape per axis and depth. ┌4────────────────────┐ │ ┌3───┐ ┌3─────┐ │ │ 1 a │ abc│ 2 1 2 3│ │ │ - └────┘ │ 4 5 6│ │ │ └~─────┘ │ └¯2───────────────────┘ Ref: "The Compact Display of Arbitrary Nested Arrays" D. A. Rabenhorst (IBM), APL88 Conference Proceedings, pp 272-277, ACM - 0-89791-253-5/88/0002/0272 Examples: display 'ABC'(1 4⍴1 2 3 4)(0 1 0⍴0)(⎕SE #)('88',99) ┌→────────────────────────────────────────┐ │ ┌→──┐ ┌→──────┐ ┌┌⊖┐ ┌→───────┐ ┌→────┐ │ │ │ABC│ ↓1 2 3 4│ ⌽↓0│ │ ⎕SE # │ │88 99│ │ │ └───┘ └~──────┘ └└~┘ └#───────┘ └+────┘ │ └∊────────────────────────────────────────┘ See also: disp box dsp Back to: contents Back to: Workspaces