diff options
Diffstat (limited to 'src/r.bqn')
| -rw-r--r-- | src/r.bqn | 22 |
1 files changed, 17 insertions, 5 deletions
@@ -299,17 +299,29 @@ Join←(1≠=)◶⟨∨´1≠=⌜,1⟩◶{ >i<⌜⊸⊏¨l/𝕩 }⍟(0<≠∘⥊) -Group←{ +_group←{ + !1==𝕩⋄!∧´Int⌜𝕩⋄!∧´¯1≤𝕩 + d←(l←GroupLen𝕩)GroupOrd𝕩 + i←0⋄(𝔽{𝕩⋄(i↩i+1)⊢i⊑d}⌜∘↕)⌜l +} +GroupInds←{ + ! IsArray 𝕩 + G←⊢_group + (1<≡)◶G‿((<<⟨⟩)⥊⊸∾⌜⌜´G⌜)𝕩 +} +GroupGen←{ ! IsArray 𝕩 - Chk←{!1==𝕩⋄!∧´Int⌜𝕩⋄!∧´¯1≤𝕩⋄≠𝕩} - l←(1<≡)◶Chk‿{!1==𝕩⋄Chk⌜𝕩}𝕨 + m←1<≡𝕨 + l←m◶≠‿{!1==𝕩⋄≠⌜𝕩}𝕨 ! l≤○≠≢𝕩 ! ∧´l=l≠⊸↑≢𝕩 - (𝕨⊸=/𝕩˜)⌜↕1+¯1⌈´⚇1𝕨 + 𝕨m◶(⊏⟜𝕩_group⊣)‿{ + ⊏⟜(𝕩⥊˜⟨×´l⟩∾(≠l)Cell𝕩)⌜ +⌜⌜´ (⌽×`⟨1⟩∾⌽1↓l) × ⊢_group⌜𝕨 + }𝕩 } ∾ ↩ Join ⊘ JoinTo -⊔ ← Group⟜(↕≠⚇1) ⊘ Group +⊔ ← GroupInds ⊘ GroupGen Pick1←{ ! 1==𝕨 |
