Collected Definitions Index   <<   >>


 
⎕ct      ← 0
invert   ← {↑¨ ⊂⍤¯1 ⍉ ⍵}
assert   ← {⍺←'assertion failure' ⋄ 0∊⍵:⍺ ⎕signal 8 ⋄ shy←0}

tassert  ← {
  assert (1≤≢⍵)∧1=⍴⍴⍵ :  ⍝ non-empty vector
  assert (⊃=⊢)≢¨⍵ :      ⍝ equal tally in each item
  assert 2=≡⍵ :          ⍝ nested array with simple items
  1
}

tindex   ← {(⊂⊂⍺)⌷¨⍵}
  tix1   ← {(⍉↑⍺⍳¨⍺)⍳(⍉↑⍺⍳¨⍵)}
tix      ← 8⌶
teps     ← {(≢⊃⍵) > ⍵ tix ⍺}
twithout ← {⍺ ⌿¨⍨ ⊂~⍺ teps ⍵}
tunique  ← {⍵ ⌿¨⍨ ⊂(⍳≢⊃⍵)=tix⍨ ⍵}
tkey     ← {(⊂tix⍨⍺) ⍺⍺⌸¨ ⍵}
tgr      ← {⊃ {⍵[⍋(⊂⍵)⌷⍺]}/ ⍵,⊂⍳≢⊃⍵}
  tgr1   ← {⍋ ⍉ ↑ {(⍋⍋⍵)[⍳⍨⍵]}¨ ⍵}
torder   ← {0=⎕nc '⍺':tgr ⍵ ⋄ (tgr ⍵)tindex ⍺}