Hi,
creating a slightly odd matrix:
*mtx←(2 2)⍴ 'asdsf' ('a',(⊂,⍬ ),'s',⊂,⍬ ) (4⍴⊂,⍬ ) (⍬ )**
8 ⎕CR mtx*
Character '⊖' replaced ~ for readability.
This output is expected.
┌→──────────────────────────────┐
↓┌→────┐ ┌→──────────┐│
││asdsf│ │a ┌~┐ s ┌~┐││
│└─────┘ │ │0│ │0│││
│ │ └─┘ └─┘││
│ └ϵ──────────┘│
│┌→──────────────┐ ┌~┐ │
││┌~┐ ┌~┐ ┌~┐ ┌~┐│ │0│ │
│││0│ │0│ │0│ │0││ └─┘ │
││└─┘ └─┘ └─┘ └─┘│ │
│└ϵ──────────────┘ │
└ϵϵ─────────────────────────────┘
The first bug:
*mtx22← (⊂2 2)⍴¨mtx*
Looks OK however *the bottom right inner matrix is broken:*
┌→────────────────┐
↓┌→─┐ ┌→────┐│
│↓as│ ↓a ┌~┐││
││ds│ │ │0│││
│└──┘ │ └─┘││
│ │s ┌~┐││
│ │ │0│││
│ │ └─┘││
│ └ϵ────┘│
│ │
│┌→──────┐ ┌→──┐ │
│↓┌~┐ ┌~┐│ ↓0 0│ │
│││0│ │0││ │0 0│ │
││└─┘ └─┘│ └───┘ │
││┌~┐ ┌~┐│ │
│││0│ │0││ │
││└─┘ └─┘│ │
│└ϵ──────┘ │
└ϵϵ───────────────┘
The "0" are zeroes! I would expect an inner matrix like the bottom left
inner matrix:
*8 ⎕CR 0= mtx22*
┌→────────────────┐
↓┌→──┐ ┌→────┐│
│↓0 0│ ↓0 ┌~┐││
││0 0│ │ │0│││
│└───┘ │ └─┘││
│ │0 ┌~┐││
│ │ │0│││
│ │ └─┘││
│ └ϵ────┘│
│ │
│┌→──────┐ ┌→──┐ │
│↓┌~┐ ┌~┐│ ↓1 1│ │
│││0│ │0││ │1 1│ │
││└─┘ └─┘│ └───┘ │
││┌~┐ ┌~┐│ │
│││0│ │0││ │
││└─┘ └─┘│ │
│└ϵ──────┘ │
└ϵϵ───────────────┘
Bug No. 2:
*8 ⎕CR ∊¨mtx22*
┌→───────────────┐
↓┌→───┐ ┌→─┐ │
││asds│ │as│ │
│└────┘ └──┘ │
│┌~──┐ ┌→──────┐│
││┌~┐│ │0 0 0 0││
│││0││ └───────┘│
││└─┘│ │
│└ϵ──┘ │
└ϵϵ──────────────┘
The bottom right matrix is a result of bug 1.
The bottom left matrix should be like in below output
*8 ⎕CR ∊¨∊¨mtx22*
┌→───────────────┐
↓┌→───┐ ┌→─┐ │
││asds│ │as│ │
│└────┘ └──┘ │
│┌~┐ ┌→──────┐│
││0│ │0 0 0 0││
│└─┘ └───────┘│
└ϵ───────────────┘
There should be no need for an extra " ∊¨ "
The reason might be in the following tiny excerpt
* ≡(⊂,⍬ )*
2 /⍝ OK/
* ≡∊(⊂,⍬ )*
2 /⍝ should be 1/
* ≡⍬ *
1 /⍝ like here ../
Best Regards
Hans-Peter