⍝ Reduced version of disp:

    dsp'hello' 'world'                          ⍝ nested vector as tree
───────────
hello│world

    cmp ← ⍕(display eis disp eis dsp eis 0∘dsp) ⍝ display v disp v dsp v 0∘dsp

    cmp'hello' 'world'
 ┌→────────────────┐  ┌─────┬─────┐  ───────────  hello│world 
 │ ┌→────┐ ┌→────┐ │  │hello│world│  hello│world              
 │ │hello│ │world│ │  └─────┴─────┘                           
 │ └─────┘ └─────┘ │                                          
 └∊────────────────┘                                          
    cmp ⊃,∘⊂/⍳5
 ┌→────────────────────┐  ┌─┬───────────┐  ─────────  1│─────── 
 │   ┌→──────────────┐ │  │1│┌─┬───────┐│  1│───────    2│───── 
 │ 1 │   ┌→────────┐ │ │  │ ││2│┌─┬───┐││    2│─────      3│4 5 
 │   │ 2 │   ┌→──┐ │ │ │  │ ││ ││3│4 5│││      3│4 5            
 │   │   │ 3 │4 5│ │ │ │  │ ││ │└─┴───┘││                       
 │   │   │   └~──┘ │ │ │  │ │└─┴───────┘│                       
 │   │   └∊────────┘ │ │  └─┴───────────┘                       
 │   └∊──────────────┘ │                                        
 └∊────────────────────┘                                        
    cmp ↓↓2 2 2⍴⎕a
 ┌→────────────────────────────┐  ┌───────┬───────┐  ───────────  ─────│───── 
 │ ┌→──────────┐ ┌→──────────┐ │  │┌──┬──┐│┌──┬──┐│  ─────│─────  AB│CD│EF│GH 
 │ │ ┌→─┐ ┌→─┐ │ │ ┌→─┐ ┌→─┐ │ │  ││AB│CD│││EF│GH││  AB│CD│EF│GH              
 │ │ │AB│ │CD│ │ │ │EF│ │GH│ │ │  │└──┴──┘│└──┴──┘│                           
 │ │ └──┘ └──┘ │ │ └──┘ └──┘ │ │  └───────┴───────┘                           
 │ └∊──────────┘ └∊──────────┘ │                                              
 └∊────────────────────────────┘                                              

    tape←{'∘',(⍺↑⍵),{⍺ ⍵}/⍺↓⍵,'∘'}              ⍝ ⍺-window tape: see →bf←
    rgt←{(⊂2↑⍵),(2↓¯1↓⍵),⊃⌽⍵}                   ⍝ tape-head moves right 1 item
    0 dsp rgt⍣5 ⊢2 tape 2/¨12↑⎕A                ⍝ skipping right along 2-tape
────────────────│FF│GG│────────────────
─────────────│EE       HH│─────────────
──────────│DD             II│──────────
───────│CC                   JJ│───────
────│BB                         KK│────
∘│AA                               LL│∘

    cmp ⍳2 2                                    ⍝ rank-2 nested array
 ┌→────────────┐  ┌───┬───┐  ───────  1 1│1 2 
 ↓ ┌→──┐ ┌→──┐ │  │1 1│1 2│  1 1│1 2  ───┼─── 
 │ │1 1│ │1 2│ │  ├───┼───┤  ───┼───  2 1│2 2 
 │ └~──┘ └~──┘ │  │2 1│2 2│  2 1│2 2          
 │ ┌→──┐ ┌→──┐ │  └───┴───┘                   
 │ │2 1│ │2 2│ │                              
 │ └~──┘ └~──┘ │                              
 └∊────────────┘                              
    cmp ↑¨¨↑¨↓↓↓↓(6/2)⍴⎕a                       ⍝ nested matrices
 ┌→────────────────────────────┐  ┌───────┬───────┐  ───────────  AB│EF│QR│UV 
 ↓ ┌→──────────┐ ┌→──────────┐ │  │┌──┬──┐│┌──┬──┐│  ─────│─────  CD│GH│ST│WX 
 │ ↓ ┌→─┐ ┌→─┐ │ ↓ ┌→─┐ ┌→─┐ │ │  ││AB│EF│││QR│UV││  AB│EF│QR│UV  ──┼──│──┼── 
 │ │ ↓AB│ ↓EF│ │ │ ↓QR│ ↓UV│ │ │  ││CD│GH│││ST│WX││  CD│GH│ST│WX  IJ│MN│YZ│CD 
 │ │ │CD│ │GH│ │ │ │ST│ │WX│ │ │  │├──┼──┤│├──┼──┤│  ──┼──│──┼──  KL│OP│AB│EF 
 │ │ └──┘ └──┘ │ │ └──┘ └──┘ │ │  ││IJ│MN│││YZ│CD││  IJ│MN│YZ│CD  ─────┼───── 
 │ │ ┌→─┐ ┌→─┐ │ │ ┌→─┐ ┌→─┐ │ │  ││KL│OP│││AB│EF││  KL│OP│AB│EF  GH│KL│WX│AB 
 │ │ ↓IJ│ ↓MN│ │ │ ↓YZ│ ↓CD│ │ │  │└──┴──┘│└──┴──┘│  ─────┼─────  IJ│MN│YZ│CD 
 │ │ │KL│ │OP│ │ │ │AB│ │EF│ │ │  ├───────┼───────┤  ─────│─────  ──┼──│──┼── 
 │ │ └──┘ └──┘ │ │ └──┘ └──┘ │ │  │┌──┬──┐│┌──┬──┐│  GH│KL│WX│AB  OP│ST│EF│IJ 
 │ └∊──────────┘ └∊──────────┘ │  ││GH│KL│││WX│AB││  IJ│MN│YZ│CD  QR│UV│GH│KL 
 │ ┌→──────────┐ ┌→──────────┐ │  ││IJ│MN│││YZ│CD││  ──┼──│──┼──              
 │ ↓ ┌→─┐ ┌→─┐ │ ↓ ┌→─┐ ┌→─┐ │ │  │├──┼──┤│├──┼──┤│  OP│ST│EF│IJ              
 │ │ ↓GH│ ↓KL│ │ │ ↓WX│ ↓AB│ │ │  ││OP│ST│││EF│IJ││  QR│UV│GH│KL              
 │ │ │IJ│ │MN│ │ │ │YZ│ │CD│ │ │  ││QR│UV│││GH│KL││                           
 │ │ └──┘ └──┘ │ │ └──┘ └──┘ │ │  │└──┴──┘│└──┴──┘│                           
 │ │ ┌→─┐ ┌→─┐ │ │ ┌→─┐ ┌→─┐ │ │  └───────┴───────┘                           
 │ │ ↓OP│ ↓ST│ │ │ ↓EF│ ↓IJ│ │ │                                              
 │ │ │QR│ │UV│ │ │ │GH│ │KL│ │ │                                              
 │ │ └──┘ └──┘ │ │ └──┘ └──┘ │ │                                              
 │ └∊──────────┘ └∊──────────┘ │                                              
 └∊────────────────────────────┘                                              
    cmp ⍳4/2                                    ⍝ rank-4 array
 ┌┌┌→────────────────────┐  ┌───────┬───────┐  ───────────────  1 1 1 1│1 1 1 2 
 ↓↓↓ ┌→──────┐ ┌→──────┐ │  │1 1 1 1│1 1 1 2│  1 1 1 1│1 1 1 2  ───────┼─────── 
 │││ │1 1 1 1│ │1 1 1 2│ │  ├───────┼───────┤  ───────┼───────  1 1 2 1│1 1 2 2 
 │││ └~──────┘ └~──────┘ │  │1 1 2 1│1 1 2 2│  1 1 2 1│1 1 2 2                  
 │││ ┌→──────┐ ┌→──────┐ │  └───────┴───────┘                   2 1 1 1│2 1 1 2 
 │││ │1 1 2 1│ │1 1 2 2│ │  ┌───────┬───────┐  2 1 1 1│2 1 1 2  ───────┼─────── 
 │││ └~──────┘ └~──────┘ │  │1 2 1 1│1 2 1 2│  ───────┼───────  2 1 2 1│2 1 2 2 
 │││                     │  ├───────┼───────┤  2 1 2 1│2 1 2 2                  
 │││ ┌→──────┐ ┌→──────┐ │  │1 2 2 1│1 2 2 2│                                   
 │││ │1 2 1 1│ │1 2 1 2│ │  └───────┴───────┘                   1 2 1 1│1 2 1 2 
 │││ └~──────┘ └~──────┘ │                     1 2 1 1│1 2 1 2  ───────┼─────── 
 │││ ┌→──────┐ ┌→──────┐ │  ┌───────┬───────┐  ───────┼───────  1 2 2 1│1 2 2 2 
 │││ │1 2 2 1│ │1 2 2 2│ │  │2 1 1 1│2 1 1 2│  1 2 2 1│1 2 2 2                  
 │││ └~──────┘ └~──────┘ │  ├───────┼───────┤                   2 2 1 1│2 2 1 2 
 │││                     │  │2 1 2 1│2 1 2 2│  2 2 1 1│2 2 1 2  ───────┼─────── 
 │││                     │  └───────┴───────┘  ───────┼───────  2 2 2 1│2 2 2 2 
 │││ ┌→──────┐ ┌→──────┐ │  ┌───────┬───────┐  2 2 2 1│2 2 2 2                  
 │││ │2 1 1 1│ │2 1 1 2│ │  │2 2 1 1│2 2 1 2│                                   
 │││ └~──────┘ └~──────┘ │  ├───────┼───────┤                                   
 │││ ┌→──────┐ ┌→──────┐ │  │2 2 2 1│2 2 2 2│                                   
 │││ │2 1 2 1│ │2 1 2 2│ │  └───────┴───────┘                                   
 │││ └~──────┘ └~──────┘ │                                                      
 │││                     │                                                      
 │││ ┌→──────┐ ┌→──────┐ │                                                      
 │││ │2 2 1 1│ │2 2 1 2│ │                                                      
 │││ └~──────┘ └~──────┘ │                                                      
 │││ ┌→──────┐ ┌→──────┐ │                                                      
 │││ │2 2 2 1│ │2 2 2 2│ │                                                      
 │││ └~──────┘ └~──────┘ │                                                      
 └└└∊────────────────────┘                                                      
    ⍕↑{cmp 0,⊂⊂⊂⍳⍵}¨2 1 0                       ⍝ enclosed empty disappears
 ┌→────────────────┐  ┌─┬───────┐  ─────  0│─── 
 │   ┌───────────┐ │  │0│┌─────┐│  0│───    ─── 
 │ 0 │ ┌───────┐ │ │  │ ││┌───┐││    ───    1 2 
 │   │ │ ┌→──┐ │ │ │  │ │││1 2│││    1 2        
 │   │ │ │1 2│ │ │ │  │ ││└───┘││               
 │   │ │ └~──┘ │ │ │  │ │└─────┘│               
 │   │ └∊──────┘ │ │  └─┴───────┘               
 │   └∊──────────┘ │                            
 └∊────────────────┘                            
                                                
 ┌→──────────────┐  ┌─┬─────┐  ───  0│─         
 │   ┌─────────┐ │  │0│┌───┐│  0│─    ─         
 │ 0 │ ┌─────┐ │ │  │ ││┌─┐││    ─    1         
 │   │ │ ┌→┐ │ │ │  │ │││1│││    1              
 │   │ │ │1│ │ │ │  │ ││└─┘││                   
 │   │ │ └~┘ │ │ │  │ │└───┘│                   
 │   │ └∊────┘ │ │  └─┴─────┘                   
 │   └∊────────┘ │                              
 └∊──────────────┘                              
                                                
 ┌→──────────────┐  ┌─┬────┐  ──  0│            
 │   ┌─────────┐ │  │0│┌──┐│  0│                
 │ 0 │ ┌─────┐ │ │  │ ││┌┐││                    
 │   │ │ ┌⊖┐ │ │ │  │ ││││││                    
 │   │ │ │0│ │ │ │  │ ││└┘││                    
 │   │ │ └~┘ │ │ │  │ │└──┘│                    
 │   │ └∊────┘ │ │  └─┴────┘                    
 │   └∊────────┘ │                              
 └∊──────────────┘                              

    ⍕dsp¨(⊂∘⊃,⊂∘⊢,⊂∘⊂,⊂∘⊂∘⊂)'hello' 'world'     ⍝ top-bar indicates depth
 hello  ───────────  ───────────  ─────────── 
        hello│world  ───────────  ─────────── 
                     hello│world  ─────────── 
                                  hello│world 

    ⍕0 dsp¨(⊂∘⊃,⊂∘⊢,⊂∘⊂,⊂∘⊂∘⊂)'hello' 'world'   ⍝ ditto with top-bar supressed
 hello  hello│world  ───────────  ─────────── 
                     hello│world  ─────────── 
                                  hello│world 

Back to: code

Back to: Workspaces