| ∪⍵ vs. ⍺⍳⍵ | Index << >> |
Uniq←{
0=⍴⍴⍵:,⍵
X←⍵
c←{⊂⍵}⌸ ⍺⍺ ⍵
⍵ ⌷⍨⊂ {⍵[⍋⍵]} ∊ {1≥≢⍵:⍵ ⋄ (⊃⍵)⍪∇ ⍵⌿⍨(X⌷⍨⊂⍵)≢⍤¯1 999⊢(X⌷⍨⊃⍵)}¨ c
}
HASH←{
N←≢X←⍺ ⋄ Y←⍵ ⋄ Z←(≢⍵)⍴¯1
c←{⊂⍵}⌸ ⍺⍺ ⍺⍪⍵
Z ⊣ {k←(N>⍵)⍳0 ⋄ Z[q]←(p,N)[(X⌷⍨⊂p←k↑⍵) ⍳ Y⌷⍨⊂q←k↓⍵-N] ⋄ 0}¨ c
}
|