aboutsummaryrefslogtreecommitdiff
path: root/spec/reference.bqn
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-02-15 17:51:17 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-02-15 17:51:17 -0500
commit666ad23844be33141f7c986de3b83f035db4b95a (patch)
treeba698088b9473d387f0db3d0f61414a8aa7a48bf /spec/reference.bqn
parent9ca6a97ade483d5cc6dfbffc3af35b88385381e8 (diff)
Reference implementation and commentary for Group length extension
Diffstat (limited to 'spec/reference.bqn')
-rw-r--r--spec/reference.bqn13
1 files changed, 9 insertions, 4 deletions
diff --git a/spec/reference.bqn b/spec/reference.bqn
index 288fdc39..988bfb51 100644
--- a/spec/reference.bqn
+++ b/spec/reference.bqn
@@ -383,11 +383,16 @@ Group←{
𝕨↩Pair∘ToArray⍟(2>≡)𝕨
! 1==𝕨
{!∧´Int¨𝕩⋄!∧´¯1≤𝕩}∘⥊¨𝕨
- n←+´=¨𝕨
+ n←+´r←=¨𝕨
! n≤=𝕩
- ! (∾≢⌜𝕨)≡n↑≢𝕩
- 𝕨↩⥊¨𝕨 ⋄ 𝕩↩((≠¨𝕨)∾n↓≢𝕩)⥊𝕩
- (𝕨⊸=/𝕩˙)¨↕1+¯1⌈´¨𝕨
+ ld←(∾≢⌜𝕨)-n↑≢𝕩
+ ! ∧´(0⊸≤∧≤⟜(r/1=r))ld
+ dr←r⌊(0»+`r)⊏ld∾⟨0⟩
+ s←dr⊣◶⟨0,¯1⊸⊑⟩¨𝕨
+ 𝕨↩dr(⥊¯1⊸↓⍟⊣)¨𝕨
+ s⌈↩1+¯1⌈´¨𝕨
+ 𝕩↩((≠¨𝕨)∾n↓≢𝕩)⥊𝕩
+ (𝕨⊸=/𝕩˙)¨↕s
}
GroupInds←{
! 1==𝕩