diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-09-04 23:01:18 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-09-05 08:49:50 -0400 |
| commit | 15bf1662b196b0a4805dd047dd09c87eb63627ae (patch) | |
| tree | 13bb09bb43a28104ad197e9140e4153df07a844a /src | |
| parent | 015d9cd399100427b3e82fb183c81d034f00cd8c (diff) | |
Allow arbitrary rank in components of Group left argument
Diffstat (limited to 'src')
| -rw-r--r-- | src/r.bqn | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -344,13 +344,14 @@ GroupInds←{ } GroupGen←{ "Group right argument must be an array" ! IsArray 𝕩 - m←1<≡𝕨 - l←m◶≠‿{"Group left argument must consist of lists"!1==𝕩⋄≠⌜𝕩}𝕨 - "Group left argument length must be at most right argument rank" ! l≤○≠≢𝕩 - "Group argument lengths must be compatible" ! ∧´l=l≠⊸↑≢𝕩 - 𝕨m◶(⊏⟜𝕩_group⊣)‿{ - ⊏⟜(𝕩⥊˜⟨×´l⟩∾(≠l)Cell𝕩)⌜ +⌜⌜´ (⌽×`⟨1⟩∾⌽1↓l) × ⊢_group⌜𝕨 - }𝕩 + 𝕨↩Pair∘ToArray⍟(2>≡)𝕨 + "Compound group left argument must be a list" ! 1==𝕨 + n←+´=⌜𝕨 + "Group left argument total rank must be at most right argument rank" ! n≤=𝕩 + "Group argument lengths must be compatible" ! ∧´(Join≢⌜𝕨)=n↑≢𝕩 + l←≠⌜𝕨↩⥊⌜𝕨 + S←⊏⟜(𝕩⥊˜⟨×´l⟩∾n Cell 𝕩) + (1≠≠)◶(S _group 0⊸⊑)‿(S⌜ ·+⌜⌜´ (⌽×`⟨1⟩∾⌽1↓l) × ⊢_group⌜) 𝕨 } ∾ ↩ Join ⊘ JoinTo |
