From db6239e74f13f6335c9c77e7a5dfa7461017f3ec Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 26 Oct 2020 13:17:02 -0400 Subject: =?UTF-8?q?Format=20empty=20arrays=20using=20=E2=86=95,=20not=20?= =?UTF-8?q?=E2=A5=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/bqn.js | 6 +- docs/doc/leading.html | 14 ++--- docs/doc/prefixes.html | 160 ++++++++++++++++++++++++------------------------- 3 files changed, 90 insertions(+), 90 deletions(-) (limited to 'docs') diff --git a/docs/bqn.js b/docs/bqn.js index dc51c549..afc4d87b 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -195,9 +195,9 @@ let fmt0 = x => (x.glyph||(x.m?"*"+x.m+"-modifier*":"*function*")) : ""+x; let fmt1 = run( - new Uint8Array([15,1,25,21,0,1,22,0,2,11,14,0,60,0,14,0,17,0,17,19,0,36,0,61,8,3,2,0,39,0,9,0,36,0,52,8,8,21,0,2,3,2,0,39,0,52,0,37,0,7,8,8,0,18,9,22,0,3,11,14,15,2,22,0,4,11,14,0,10,0,7,0,46,19,0,41,15,3,8,22,0,5,11,14,15,4,22,0,6,11,14,15,5,22,0,7,11,14,15,6,15,7,3,2,0,39,15,8,0,45,3,2,0,39,0,9,0,37,0,9,0,36,0,45,8,0,35,0,6,8,8,8,8,22,0,8,11,14,0,70,0,18,0,69,17,15,9,15,10,3,2,0,39,0,9,0,10,0,42,19,0,6,0,10,0,9,0,46,19,19,8,3,2,0,39,0,13,0,13,0,42,0,42,3,2,19,8,22,0,9,11,14,15,11,22,0,10,11,14,15,12,22,0,11,11,14,15,13,15,14,15,15,3,3,0,39,0,26,0,52,7,0,7,0,16,19,0,34,0,31,0,0,7,0,11,0,0,0,7,0,36,0,42,8,19,0,9,19,8,8,22,0,12,11,14,21,0,3,21,0,12,21,0,11,3,3,0,39,0,12,0,3,0,46,19,8,22,0,13,11,14,21,0,13,0,34,0,28,0,51,0,0,0,52,17,0,37,0,17,8,7,8,0,16,9,0,20,0,43,19,25,0,45,0,29,0,19,7,21,0,1,0,1,16,17,0,22,0,38,0,33,0,27,0,30,0,2,7,7,7,8,16,0,31,0,43,0,44,3,2,0,40,0,0,8,7,21,0,2,17,0,16,16,0,25,0,36,0,43,8,0,38,0,42,8,16,25,21,0,1,0,13,16,0,20,0,43,17,22,0,3,11,0,4,0,45,17,21,1,4,16,22,0,4,11,14,15,16,22,0,5,11,14,21,0,1,0,16,21,0,1,0,13,16,0,19,0,43,17,0,17,21,0,3,0,31,0,2,7,16,17,17,0,19,0,36,0,31,0,0,7,8,21,0,5,3,2,0,39,0,15,0,34,0,9,8,0,7,0,42,19,8,21,0,4,17,25,21,0,1,0,16,16,0,29,0,26,0,53,7,0,16,0,13,0,25,0,43,19,0,37,0,17,8,19,0,17,0,15,19,7,21,0,1,0,13,16,21,1,4,0,45,17,17,0,17,16,25,0,53,0,16,21,0,1,0,9,16,21,0,2,3,2,17,22,0,3,11,14,21,0,3,21,0,1,21,0,3,3,3,0,18,16,0,17,16,25,0,64,0,17,21,0,1,0,24,16,0,20,0,45,17,0,20,0,43,17,17,0,17,0,63,17,0,18,16,25,21,0,1,0,13,16,0,25,0,43,17,22,0,3,11,14,0,65,21,0,2,0,15,0,3,0,45,19,0,27,0,24,7,0,66,19,0,16,9,21,1,2,3,2,0,39,0,7,0,36,0,47,8,8,16,3,2,0,17,16,0,19,21,0,3,17,0,18,16,21,0,1,0,25,0,38,0,67,0,25,0,45,0,1,21,0,2,17,0,3,0,48,17,0,4,0,42,17,17,8,16,0,68,0,19,0,36,0,1,8,21,0,3,17,0,18,16,3,3,0,17,16,25,21,0,1,0,24,16,0,30,0,10,7,0,62,17,0,32,0,1,7,16,0,33,0,0,7,16,0,10,0,46,17,0,31,0,6,7,16,25,21,0,1,0,29,0,71,7,16,21,1,7,0,45,17,21,1,8,0,46,17,0,25,0,36,0,42,0,43,3,2,8,0,38,0,54,8,16,25,21,0,1,0,13,16,0,72,0,29,21,1,2,7,0,29,0,73,0,37,0,17,8,7,9,0,17,9,0,25,0,36,0,43,8,0,38,0,55,8,9,3,2,0,39,0,9,0,7,0,45,19,8,16,0,27,0,17,7,0,62,17,0,18,16,25,21,0,1,0,29,0,13,7,16,22,0,3,11,14,21,0,3,0,29,0,25,7,0,45,17,0,16,0,26,0,45,7,0,1,0,10,19,0,41,0,32,0,4,7,8,3,2,0,39,0,10,0,7,0,42,19,8,16,22,0,4,11,14,21,0,3,0,29,0,25,7,16,0,10,0,7,0,42,19,0,41,0,45,0,40,0,32,0,4,7,8,8,16,22,0,5,11,14,21,0,1,0,29,0,19,7,0,45,0,19,21,0,4,0,9,16,0,2,21,0,2,17,0,1,16,17,0,5,21,0,4,17,0,2,21,0,2,17,0,30,0,17,7,21,0,5,17,17,0,10,0,1,0,46,19,0,4,0,42,19,0,41,0,18,8,16,0,46,0,40,0,17,0,34,0,7,8,8,16,22,0,6,11,14,21,0,6,21,1,6,0,8,0,34,21,1,5,8,3,2,0,39,21,0,5,0,16,16,0,12,0,36,0,22,0,36,0,45,8,8,16,8,16,21,1,7,0,46,17,25,21,0,1,0,29,21,1,13,7,16,21,1,10,0,45,0,14,21,0,2,17,17,21,1,8,21,0,1,0,10,16,17,25,21,0,1,0,13,16,0,20,0,43,17,22,0,3,11,0,9,16,0,1,16,0,10,0,36,0,42,8,0,41,0,44,8,16,22,0,4,11,14,0,56,22,0,5,11,14,15,17,22,0,6,11,14,21,0,1,0,23,0,36,0,15,0,10,21,0,5,19,0,0,0,45,19,8,21,0,6,3,2,0,39,0,10,0,9,0,45,19,8,16,22,0,1,12,14,21,0,1,0,10,16,22,0,7,11,14,21,0,5,0,19,0,36,0,1,8,21,0,3,17,21,0,4,0,40,0,17,8,21,0,1,17,21,0,4,0,40,0,17,8,0,59,0,19,21,0,3,0,17,0,45,17,0,25,0,43,17,17,0,16,21,0,3,17,0,25,0,38,21,0,5,8,16,17,0,18,16,21,0,7,0,9,0,45,17,0,41,21,1,5,21,1,7,0,45,19,21,1,8,21,0,7,19,8,16,25,21,0,1,21,1,11,21,1,9,3,2,0,39,0,13,0,10,0,42,19,0,31,0,6,7,9,8,16,25,21,0,1,21,1,11,0,43,17,25,21,0,1,0,17,0,36,0,24,0,34,0,29,0,53,7,8,8,16,0,24,21,0,2,0,0,0,45,17,0,17,0,42,17,0,23,16,0,2,0,36,0,7,0,36,0,21,8,8,16,17,25,0,50,0,0,0,52,17,0,7,21,0,1,17,0,2,0,52,0,1,0,58,17,17,0,0,0,49,0,0,0,52,17,0,15,0,1,0,57,19,0,2,0,10,19,21,0,1,17,17,0,0,21,0,1,17,25]) - ,[runtime[0],runtime[1],runtime[2],runtime[6],runtime[7],runtime[9],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[18],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[29],runtime[30],runtime[32],runtime[35],runtime[36],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[58],runtime[59],runtime[61],0,-1,Infinity,1,2,5,4,127,32,10,'',' ','┐','⥊','\"','␡','␀','·',str("@"),str("\'"),str("⟨⟩"),str("⟨"),str("⟩"),str("┌"),str("·─"),str("·╵╎┆┊"),str("┘"),str("┌┐"),str("└┘"),str(" "),str(""),str("‿")] - ,[[0,1,0,0],[1,1,3,14],[0,0,311,3],[0,0,377,6],[0,0,477,3],[0,0,528,4],[0,0,567,3],[0,0,597,4],[0,0,720,3],[0,0,758,3],[0,0,797,3],[0,0,863,7],[0,0,1093,3],[0,0,1126,8],[0,0,1332,3],[0,0,1361,3],[0,0,1371,3],[0,0,1423,3]] + new Uint8Array([15,1,25,21,0,1,22,0,2,11,14,0,60,0,14,0,17,0,17,19,0,36,0,61,8,3,2,0,39,0,9,0,36,0,52,8,8,21,0,2,3,2,0,39,0,52,0,37,0,7,8,8,0,18,9,22,0,3,11,14,15,2,22,0,4,11,14,0,10,0,7,0,46,19,0,41,15,3,8,22,0,5,11,14,15,4,22,0,6,11,14,15,5,22,0,7,11,14,15,6,15,7,3,2,0,39,15,8,0,45,3,2,0,39,0,9,0,37,0,9,0,36,0,45,8,0,35,0,6,8,8,8,8,22,0,8,11,14,0,70,0,18,0,69,17,15,9,15,10,3,2,0,39,0,9,0,10,0,42,19,0,6,0,10,0,9,0,46,19,19,8,3,2,0,39,0,13,0,13,0,42,0,42,3,2,19,8,22,0,9,11,14,15,11,22,0,10,11,14,15,12,22,0,11,11,14,15,13,15,14,15,15,3,3,0,39,0,26,0,52,7,0,7,0,16,19,0,34,0,31,0,0,7,0,11,0,0,0,7,0,36,0,42,8,19,0,9,19,8,8,22,0,12,11,14,21,0,3,21,0,12,21,0,11,3,3,0,39,0,12,0,3,0,46,19,8,22,0,13,11,14,21,0,13,0,34,0,28,0,51,0,0,0,52,17,0,37,0,17,8,7,8,0,16,9,0,20,0,43,19,25,0,45,0,29,0,19,7,21,0,1,0,1,16,17,0,22,0,38,0,33,0,27,0,30,0,2,7,7,7,8,16,0,31,0,43,0,44,3,2,0,40,0,0,8,7,21,0,2,17,0,16,16,0,25,0,36,0,43,8,0,38,0,42,8,16,25,21,0,1,0,13,16,0,20,0,43,17,22,0,3,11,0,4,0,45,17,21,1,4,16,22,0,4,11,14,15,16,22,0,5,11,14,21,0,1,0,16,21,0,1,0,13,16,0,19,0,43,17,0,17,21,0,3,0,31,0,2,7,16,17,17,0,19,0,36,0,31,0,0,7,8,21,0,5,3,2,0,39,0,15,0,34,0,9,8,0,7,0,42,19,8,21,0,4,17,25,21,0,1,0,16,16,0,29,0,26,0,53,7,0,16,0,13,0,25,0,43,19,0,37,0,17,8,19,0,17,0,15,19,7,21,0,1,0,13,16,21,1,4,0,45,17,17,0,17,16,25,0,53,0,16,21,0,1,0,9,16,21,0,2,3,2,17,22,0,3,11,14,21,0,3,21,0,1,21,0,3,3,3,0,18,16,0,17,16,25,0,64,0,17,21,0,1,0,24,16,0,20,0,45,17,0,20,0,43,17,17,0,17,0,63,17,0,18,16,25,21,0,1,0,13,16,0,25,0,43,17,22,0,3,11,14,0,65,21,0,2,0,15,0,3,0,45,19,0,27,0,24,7,0,66,19,0,16,9,21,1,2,3,2,0,39,0,7,0,36,0,47,8,8,16,3,2,0,17,16,0,19,21,0,3,17,0,18,16,21,0,1,0,25,0,38,0,67,0,25,0,45,0,1,21,0,2,17,0,3,0,48,17,0,4,0,42,17,17,8,16,0,68,0,19,0,36,0,1,8,21,0,3,17,0,18,16,3,3,0,17,16,25,21,0,1,0,24,16,0,30,0,10,7,0,62,17,0,32,0,1,7,16,0,33,0,0,7,16,0,10,0,46,17,0,31,0,6,7,16,25,21,0,1,0,29,0,71,7,16,21,1,7,0,45,17,21,1,8,0,46,17,0,25,0,36,0,42,0,43,3,2,8,0,38,0,54,8,16,25,21,0,1,0,13,16,0,62,0,29,21,1,2,7,0,29,0,17,0,36,0,72,8,7,9,0,17,9,0,25,0,38,0,55,8,9,3,2,0,39,0,9,0,7,0,45,19,8,16,0,18,16,25,21,0,1,0,29,0,13,7,16,22,0,3,11,14,21,0,3,0,29,0,25,7,0,45,17,0,16,0,26,0,45,7,0,1,0,10,19,0,41,0,32,0,4,7,8,3,2,0,39,0,10,0,7,0,42,19,8,16,22,0,4,11,14,21,0,3,0,29,0,25,7,16,0,10,0,7,0,42,19,0,41,0,45,0,40,0,32,0,4,7,8,8,16,22,0,5,11,14,21,0,1,0,29,0,19,7,0,45,0,19,21,0,4,0,9,16,0,2,21,0,2,17,0,1,16,17,0,5,21,0,4,17,0,2,21,0,2,17,0,30,0,17,7,21,0,5,17,17,0,10,0,1,0,46,19,0,4,0,42,19,0,41,0,18,8,16,0,46,0,40,0,17,0,34,0,7,8,8,16,22,0,6,11,14,21,0,6,21,1,6,0,8,0,34,21,1,5,8,3,2,0,39,21,0,5,0,16,16,0,12,0,36,0,22,0,36,0,45,8,8,16,8,16,21,1,7,0,46,17,25,21,0,1,0,29,21,1,13,7,16,21,1,10,0,45,0,14,21,0,2,17,17,21,1,8,21,0,1,0,10,16,17,25,21,0,1,0,13,16,0,20,0,43,17,22,0,3,11,0,9,16,0,1,16,0,10,0,36,0,42,8,0,41,0,44,8,16,22,0,4,11,14,0,56,22,0,5,11,14,15,17,22,0,6,11,14,21,0,1,0,23,0,36,0,15,0,10,21,0,5,19,0,0,0,45,19,8,21,0,6,3,2,0,39,0,10,0,9,0,45,19,8,16,22,0,1,12,14,21,0,1,0,10,16,22,0,7,11,14,21,0,5,0,19,0,36,0,1,8,21,0,3,17,21,0,4,0,40,0,17,8,21,0,1,17,21,0,4,0,40,0,17,8,0,59,0,19,21,0,3,0,17,0,45,17,0,25,0,43,17,17,0,16,21,0,3,17,0,25,0,38,21,0,5,8,16,17,0,18,16,21,0,7,0,9,0,45,17,0,41,21,1,5,21,1,7,0,45,19,21,1,8,21,0,7,19,8,16,25,21,0,1,21,1,11,21,1,9,3,2,0,39,0,13,0,10,0,42,19,0,31,0,6,7,9,8,16,25,21,0,1,21,1,11,0,43,17,25,21,0,1,0,17,0,36,0,24,0,34,0,29,0,53,7,8,8,16,0,24,21,0,2,0,0,0,45,17,0,17,0,42,17,0,23,16,0,2,0,36,0,7,0,36,0,21,8,8,16,17,25,0,50,0,0,0,52,17,0,7,21,0,1,17,0,2,0,52,0,1,0,58,17,17,0,0,0,49,0,0,0,52,17,0,15,0,1,0,57,19,0,2,0,10,19,21,0,1,17,17,0,0,21,0,1,17,25]) + ,[runtime[0],runtime[1],runtime[2],runtime[6],runtime[7],runtime[9],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[18],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[29],runtime[30],runtime[32],runtime[35],runtime[36],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[58],runtime[59],runtime[61],0,-1,Infinity,1,2,5,4,127,32,10,'',' ','┐','↕','\"','␡','␀','·',str("@"),str("\'"),str("⟨⟩"),str("⟨"),str("⟩"),str("┌"),str("·─"),str("·╵╎┆┊"),str("┘"),str("┌┐"),str("└┘"),str(" "),str("‿")] + ,[[0,1,0,0],[1,1,3,14],[0,0,311,3],[0,0,377,6],[0,0,477,3],[0,0,528,4],[0,0,567,3],[0,0,597,4],[0,0,720,3],[0,0,758,3],[0,0,797,3],[0,0,850,7],[0,0,1080,3],[0,0,1113,8],[0,0,1319,3],[0,0,1348,3],[0,0,1358,3],[0,0,1410,3]] )(a=>str(fmt0(a))); let fmt = x => fmt1(x).map(c=>c===0?" ":c).join(""); diff --git a/docs/doc/leading.html b/docs/doc/leading.html index 108b9d63..9e0a182b 100644 --- a/docs/doc/leading.html +++ b/docs/doc/leading.html @@ -48,13 +48,13 @@

In these three cases above, the results are the same as you would get from transposing before and after (this has no effect on the result of ˘, since it has rank 1). But in the following cases, the structure is quite different: a is a list of matrices while ˘a is a matrix of lists. This is because the functions , , and ` leave the trailing axis structure intact ( removes one axis); taking into account that Rank or Cells always preserves the leading or frame axes, all axes are preserved (except the one removed by ). In contrast, Prefixes or Suffixes pushes some axes down in depth, and the number of axes that are pushed down in this way changes with the rank of application. More precisely, these functions move axes after the first from the argument itself to result elements, and create two axes from the first axis, with one of them forming the sole result axis and the other joining the rest as an element axis.

↗️
     a                   # Prefixes of a:    ranks 1|2
-┌─                             
-· 0‿2⥊⟨⟩ ┌─     ┌─     ┌─      
-         ╵"ab"  ╵"ab   ╵"ab    
-              ┘   cd"    cd    
-                     ┘   ef"   
-                            ┘  
-                              ┘
+┌─                           
+· ↕0‿2 ┌─     ┌─     ┌─      
+       ╵"ab"  ╵"ab   ╵"ab    
+            ┘   cd"    cd    
+                   ┘   ef"   
+                          ┘  
+                            ┘
     ˘ a                  # Prefixes of rows: ranks 2|1
 ┌─             
 ╵ ⟨⟩ "a" "ab"  
diff --git a/docs/doc/prefixes.html b/docs/doc/prefixes.html
index 21bbeff7..5f951c07 100644
--- a/docs/doc/prefixes.html
+++ b/docs/doc/prefixes.html
@@ -99,46 +99,46 @@
 

We might view a slice as a selection for not two but three parameters: the number of cells before, in, and after the slice. The conditions are that each parameter, being a length, is at least 0, and the total of the three parameters is equal to the array length. With three parameters and one equality constraint, the space of slices is two-dimensional; the above ways to enumerate it each pick two parameters and allow the third to be dependent on these two. If you're familiar with barycentric coordinates on a triangle, this should sound very familiar because that's exactly what the three parameters are!

We might also consider the question of slices along multiple axes. Because axes are orthogonal, we can choose such a slice by independently slicing along each axis. To use the homogeneous shape of arrays as much as possible, the result should still only have two added layers of nesting for the two coordinates we choose, with all possible choices for the first axis along the axes of the outer array and those for the second along the axes of each inner array. Our Windows-based solution adapts to multidimensional arrays easily:

↗️
    ((1+≢)<2¨<) 32"abcdef"
-┌─                                           
-╵ ┌─           ┌─                ┌─          
-  ╵ ┌┐ ┌┐ ┌┐   ╵ 0‿1⥊⟨⟩ 0‿1⥊⟨⟩   ╵ 0‿2⥊⟨⟩    
-    └┘ └┘ └┘     0‿1⥊⟨⟩ 0‿1⥊⟨⟩     0‿2⥊⟨⟩    
-    ┌┐ ┌┐ ┌┐     0‿1⥊⟨⟩ 0‿1⥊⟨⟩     0‿2⥊⟨⟩    
-    └┘ └┘ └┘     0‿1⥊⟨⟩ 0‿1⥊⟨⟩     0‿2⥊⟨⟩    
-    ┌┐ ┌┐ ┌┐                   ┘          ┘  
-    └┘ └┘ └┘                                 
-    ┌┐ ┌┐ ┌┐                                 
-    └┘ └┘ └┘                                 
-             ┘                               
-  ┌─           ┌─                ┌─          
-  ╵ ┌┐ ┌┐ ┌┐   ╵ ┌─    ┌─        ╵ ┌─        
-    ╵  ╵  ╵      ╵"a"  ╵"b"        ╵"ab"     
-     ┘  ┘  ┘         ┘     ┘            ┘    
-    ┌┐ ┌┐ ┌┐     ┌─    ┌─          ┌─        
-    ╵  ╵  ╵      ╵"c"  ╵"d"        ╵"cd"     
-     ┘  ┘  ┘         ┘     ┘            ┘    
-    ┌┐ ┌┐ ┌┐     ┌─    ┌─          ┌─        
-    ╵  ╵  ╵      ╵"e"  ╵"f"        ╵"ef"     
-     ┘  ┘  ┘         ┘     ┘            ┘    
-             ┘               ┘            ┘  
-  ┌─           ┌─                ┌─          
-  ╵ ┌┐ ┌┐ ┌┐   ╵ ┌─    ┌─        ╵ ┌─        
-    ╵  ╵  ╵      ╵"a   ╵"b         ╵"ab      
-                   c"    d"          cd"     
-     ┘  ┘  ┘         ┘     ┘            ┘    
-    ┌┐ ┌┐ ┌┐     ┌─    ┌─          ┌─        
-    ╵  ╵  ╵      ╵"c   ╵"d         ╵"cd      
-                   e"    f"          ef"     
-     ┘  ┘  ┘         ┘     ┘            ┘    
-             ┘               ┘            ┘  
-  ┌─           ┌─                ┌─          
-  ╵ ┌┐ ┌┐ ┌┐   ╵ ┌─    ┌─        ╵ ┌─        
-    ╵  ╵  ╵      ╵"a   ╵"b         ╵"ab      
-                   c     d           cd      
-                   e"    f"          ef"     
-     ┘  ┘  ┘         ┘     ┘            ┘    
-             ┘               ┘            ┘  
-                                            ┘
+┌─                                         
+╵ ┌─           ┌─              ┌─          
+  ╵ ┌┐ ┌┐ ┌┐   ╵ ↕0‿1 ↕0‿1     ╵ ↕0‿2      
+    └┘ └┘ └┘     ↕0‿1 ↕0‿1       ↕0‿2      
+    ┌┐ ┌┐ ┌┐     ↕0‿1 ↕0‿1       ↕0‿2      
+    └┘ └┘ └┘     ↕0‿1 ↕0‿1       ↕0‿2      
+    ┌┐ ┌┐ ┌┐               ┘          ┘    
+    └┘ └┘ └┘                               
+    ┌┐ ┌┐ ┌┐                               
+    └┘ └┘ └┘                               
+             ┘                             
+  ┌─           ┌─              ┌─          
+  ╵ ┌┐ ┌┐ ┌┐   ╵ ┌─    ┌─      ╵ ┌─        
+    ╵  ╵  ╵      ╵"a"  ╵"b"      ╵"ab"     
+     ┘  ┘  ┘         ┘     ┘          ┘    
+    ┌┐ ┌┐ ┌┐     ┌─    ┌─        ┌─        
+    ╵  ╵  ╵      ╵"c"  ╵"d"      ╵"cd"     
+     ┘  ┘  ┘         ┘     ┘          ┘    
+    ┌┐ ┌┐ ┌┐     ┌─    ┌─        ┌─        
+    ╵  ╵  ╵      ╵"e"  ╵"f"      ╵"ef"     
+     ┘  ┘  ┘         ┘     ┘          ┘    
+             ┘               ┘          ┘  
+  ┌─           ┌─              ┌─          
+  ╵ ┌┐ ┌┐ ┌┐   ╵ ┌─    ┌─      ╵ ┌─        
+    ╵  ╵  ╵      ╵"a   ╵"b       ╵"ab      
+                   c"    d"        cd"     
+     ┘  ┘  ┘         ┘     ┘          ┘    
+    ┌┐ ┌┐ ┌┐     ┌─    ┌─        ┌─        
+    ╵  ╵  ╵      ╵"c   ╵"d       ╵"cd      
+                   e"    f"        ef"     
+     ┘  ┘  ┘         ┘     ┘          ┘    
+             ┘               ┘          ┘  
+  ┌─           ┌─              ┌─          
+  ╵ ┌┐ ┌┐ ┌┐   ╵ ┌─    ┌─      ╵ ┌─        
+    ╵  ╵  ╵      ╵"a   ╵"b       ╵"ab      
+                   c     d         cd      
+                   e"    f"        ef"     
+     ┘  ┘  ┘         ┘     ┘          ┘    
+             ┘               ┘          ┘  
+                                          ┘
 

This array can be joined, indicating that the length of each inner axis depends only on the position in the corresponding outer axis (let's also drop those empty slices to take up less space).

↗️
     11  ((1+≢)<2¨<) 32"abcdef"
@@ -171,44 +171,44 @@
 ↗️
    Prefs  (1+≢)¨<
     Suffs  (1+≢)¨<
     Prefs¨Suffs 32"abcdef"
-┌─                                           
-╵ ┌─                   ┌─            ┌─      
-  ╵ ┌┐ 0‿1⥊⟨⟩ 0‿2⥊⟨⟩   ╵ ┌┐ 0‿1⥊⟨⟩   ╵ ┌┐    
-    └┘                   └┘            └┘    
-    ┌┐ ┌─     ┌─         ┌┐ ┌─         ┌┐    
-    ╵  ╵"a"   ╵"ab"      ╵  ╵"b"       ╵     
-     ┘     ┘       ┘      ┘     ┘       ┘    
-    ┌┐ ┌─     ┌─         ┌┐ ┌─         ┌┐    
-    ╵  ╵"a    ╵"ab       ╵  ╵"b        ╵     
-         c"     cd"           d"             
-     ┘     ┘       ┘      ┘     ┘       ┘    
-    ┌┐ ┌─     ┌─         ┌┐ ┌─         ┌┐    
-    ╵  ╵"a    ╵"ab       ╵  ╵"b        ╵     
-         c      cd            d              
-         e"     ef"           f"             
-     ┘     ┘       ┘      ┘     ┘       ┘    
-                     ┘             ┘      ┘  
-  ┌─                   ┌─            ┌─      
-  ╵ ┌┐ 0‿1⥊⟨⟩ 0‿2⥊⟨⟩   ╵ ┌┐ 0‿1⥊⟨⟩   ╵ ┌┐    
-    └┘                   └┘            └┘    
-    ┌┐ ┌─     ┌─         ┌┐ ┌─         ┌┐    
-    ╵  ╵"c"   ╵"cd"      ╵  ╵"d"       ╵     
-     ┘     ┘       ┘      ┘     ┘       ┘    
-    ┌┐ ┌─     ┌─         ┌┐ ┌─         ┌┐    
-    ╵  ╵"c    ╵"cd       ╵  ╵"d        ╵     
-         e"     ef"           f"             
-     ┘     ┘       ┘      ┘     ┘       ┘    
-                     ┘             ┘      ┘  
-  ┌─                   ┌─            ┌─      
-  ╵ ┌┐ 0‿1⥊⟨⟩ 0‿2⥊⟨⟩   ╵ ┌┐ 0‿1⥊⟨⟩   ╵ ┌┐    
-    └┘                   └┘            └┘    
-    ┌┐ ┌─     ┌─         ┌┐ ┌─         ┌┐    
-    ╵  ╵"e"   ╵"ef"      ╵  ╵"f"       ╵     
-     ┘     ┘       ┘      ┘     ┘       ┘    
-                     ┘             ┘      ┘  
-  ┌─                   ┌─            ┌─      
-  ╵ ┌┐ 0‿1⥊⟨⟩ 0‿2⥊⟨⟩   ╵ ┌┐ 0‿1⥊⟨⟩   ╵ ┌┐    
-    └┘                   └┘            └┘    
-                     ┘             ┘      ┘  
-                                            ┘
+┌─                                         
+╵ ┌─                  ┌─           ┌─      
+  ╵ ┌┐ ↕0‿1  ↕0‿2     ╵ ┌┐ ↕0‿1    ╵ ┌┐    
+    └┘                  └┘           └┘    
+    ┌┐ ┌─    ┌─         ┌┐ ┌─        ┌┐    
+    ╵  ╵"a"  ╵"ab"      ╵  ╵"b"      ╵     
+     ┘     ┘      ┘      ┘     ┘      ┘    
+    ┌┐ ┌─    ┌─         ┌┐ ┌─        ┌┐    
+    ╵  ╵"a   ╵"ab       ╵  ╵"b       ╵     
+         c"    cd"           d"            
+     ┘     ┘      ┘      ┘     ┘      ┘    
+    ┌┐ ┌─    ┌─         ┌┐ ┌─        ┌┐    
+    ╵  ╵"a   ╵"ab       ╵  ╵"b       ╵     
+         c     cd            d             
+         e"    ef"           f"            
+     ┘     ┘      ┘      ┘     ┘      ┘    
+                    ┘            ┘      ┘  
+  ┌─                  ┌─           ┌─      
+  ╵ ┌┐ ↕0‿1  ↕0‿2     ╵ ┌┐ ↕0‿1    ╵ ┌┐    
+    └┘                  └┘           └┘    
+    ┌┐ ┌─    ┌─         ┌┐ ┌─        ┌┐    
+    ╵  ╵"c"  ╵"cd"      ╵  ╵"d"      ╵     
+     ┘     ┘      ┘      ┘     ┘      ┘    
+    ┌┐ ┌─    ┌─         ┌┐ ┌─        ┌┐    
+    ╵  ╵"c   ╵"cd       ╵  ╵"d       ╵     
+         e"    ef"           f"            
+     ┘     ┘      ┘      ┘     ┘      ┘    
+                    ┘            ┘      ┘  
+  ┌─                  ┌─           ┌─      
+  ╵ ┌┐ ↕0‿1  ↕0‿2     ╵ ┌┐ ↕0‿1    ╵ ┌┐    
+    └┘                  └┘           └┘    
+    ┌┐ ┌─    ┌─         ┌┐ ┌─        ┌┐    
+    ╵  ╵"e"  ╵"ef"      ╵  ╵"f"      ╵     
+     ┘     ┘      ┘      ┘     ┘      ┘    
+                    ┘            ┘      ┘  
+  ┌─                  ┌─           ┌─      
+  ╵ ┌┐ ↕0‿1 ↕0‿2      ╵ ┌┐ ↕0‿1    ╵ ┌┐    
+    └┘                  └┘           └┘    
+                 ┘              ┘       ┘  
+                                          ┘
 
-- cgit v1.2.3