diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-01-25 21:43:32 -0500 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-01-25 21:43:32 -0500 |
| commit | 92fad6dd8d642dc131106db707080a5cd764e2f7 (patch) | |
| tree | 7ea5e5abd21f5159d99c347f67660d42705614ba /src | |
| parent | 5099124e183e0de449dbd41ff52431ff5bc61ddd (diff) | |
Use fill element to Join empty array (multiplying inner and outer shape)
Diffstat (limited to 'src')
| -rw-r--r-- | src/r.bqn | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -275,13 +275,12 @@ Depth←IsArray◶0‿{1+0(⊣-≤×-)´Depth⌜⥊𝕩} IF ← ⊢⊣!∘≡ # Intersect fill IEF← (0<≠)◶⟨⊢_fillBy_ Fill, ⊢_fillBy_ IF´⟩∘⥊ -_fillMerge ← {𝔽 ⊣_fillBy_⊢ IEF} -MergeA←{ +_fillMerge_ ← {(0<≠∘⥊)◶⟨(𝔾○≢⥊⟨⟩˙)_fillBy_⊢⟜Fill, 𝔽 ⊣_fillBy_⊢ IEF⟩} +Merge←{ c←≢0⊑⥊𝕩 ">𝕩: Elements of 𝕩 must have matching shapes" ! 1×´(c≡≢)⌜⥊𝕩 𝕩⊑⟜Deshape˜⌜c⥊↕1×´c -}_fillMerge -Merge ← (0<≠∘⥊)◶⟨(∾○≢⥊⟨⟩˙)_fillBy_⊢⟜Fill, MergeA⟩⍟IsArray +}_fillMerge_∾⍟IsArray Join1←{ # List of lists @@ -317,7 +316,11 @@ JoinM←{ } Join←(2⌊=)◶⟨ Merge, (1×´(1==)⌜)◶JoinM‿Join1, JoinM -⟩_fillMerge⍟{"∾𝕩: 𝕩 must be an array" ! IsArray 𝕩 ⋄ 0<≠⥊𝕩} +⟩_fillMerge_{ + r←≠𝕨 ⋄ d←≠𝕩 + "∾𝕩: empty 𝕩 fill rank must be at least argument rank" ! d≥r + (r≤⊣)◶⟨⊑⟜𝕨⊸×,⊢⟩⟜(⊑⟜𝕩)⌜↕d +} ⊣ "∾𝕩: 𝕩 must be an array"!IsArray _takeDrop←{ ⟨gl,Noop,_inds⟩←𝕗 |
