diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-08-14 22:45:53 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-08-14 22:45:53 -0400 |
| commit | a4d720d76b4772983a1920758bf71b93903b5243 (patch) | |
| tree | 6ed615462ac7a7d4ff69d3e87fcf0b706c13cfa5 /docs/doc/group.html | |
| parent | 338f7364b1cf475ad1f7db94e448b7f71bd18624 (diff) | |
Update information about the current state of BQN development
Diffstat (limited to 'docs/doc/group.html')
| -rw-r--r-- | docs/doc/group.html | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/docs/doc/group.html b/docs/doc/group.html index 2ec68f63..7f85ea48 100644 --- a/docs/doc/group.html +++ b/docs/doc/group.html @@ -2,10 +2,6 @@ <div class="nav"><a href="https://github.com/mlochbaum/BQN">BQN</a></div> <h1 id="group">Group</h1> <p>BQN replaces the <a href="https://aplwiki.com/wiki/Key">Key</a> operator from J or Dyalog APL, and <a href="https://aplwiki.com/wiki/Partition_representations">many forms of partitioning</a>, with a single (ambivalent) Group function <code><span class='Function'>⊔</span></code>. This function is somewhat related to the K function <code><span class='Function'>=</span></code> of the same name, but results in an array rather than a dictionary.</p> -<p>The BQN prototype does not implement this function: instead it uses <code><span class='Function'>⊔</span></code> for a Group/Key function very similar to <code><span class='Brace'>{</span><span class='Value'>⊂⍵</span><span class='Brace'>}</span><span class='Value'>⌸</span></code> in Dyalog APL, and also has a Cut function <code><span class='Value'>\</span></code>. The new BQN Group on numeric arguments (equivalently, rank-1 results) can be defined like this:</p> -<pre><span class='Function'>⊔</span><span class='Gets'>↩</span><span class='Paren'>((</span><span class='Function'>↕</span><span class='Number'>1</span><span class='Function'>+</span><span class='Paren'>(</span><span class='Function'>>⌈</span><span class='Modifier'>´</span><span class='Paren'>))</span><span class='Function'>=</span><span class='Modifier'>¨</span><span class='Function'><</span><span class='Paren'>)</span><span class='Modifier2'>∘</span><span class='Function'>⊣</span> <span class='Function'>/</span><span class='Modifier'>¨</span><span class='Modifier2'>⟜</span><span class='Function'><</span> <span class='Function'>↕</span><span class='Modifier2'>∘</span><span class='Function'>≠</span><span class='Value'>⍠</span><span class='Function'>⊢</span> -</pre> -<p>Once defined, the old BQN Key (dyadic) is <code><span class='Function'>⍷</span><span class='Modifier2'>⊸</span><span class='Function'>⊐</span><span class='Modifier2'>⊸</span><span class='Function'>⊔</span></code> and Group (monadic) is <code><span class='Function'>⍷</span><span class='Modifier2'>⊸</span><span class='Function'>⊐⊔↕</span><span class='Modifier2'>∘</span><span class='Function'>≠</span></code> using the Deduplicate or Unique Cells function <code><span class='Function'>⍷</span></code> (BQN2NGN spells it <code><span class='Value'>∪</span></code>). Cut on matching-length arguments is <code><span class='Function'>+</span><span class='Modifier'>`</span><span class='Modifier2'>⊸</span><span class='Function'>⊔</span></code>.</p> <h2 id="definition">Definition</h2> <p>Group operates on a numeric list of indices and an array, treated as a list of its major cells or "values", to produce a list of groups, each of which is a selection from those cells. The two arrays have the same length, and each value cell is paired with the index at the same position. That index indicates the result group the cell should go into, with an "index" of ¯1 indicating that it should be dropped and not appear in the result.</p> <pre> <span class='Number'>0</span><span class='Ligature'>‿</span><span class='Number'>1</span><span class='Ligature'>‿</span><span class='Number'>2</span><span class='Ligature'>‿</span><span class='Number'>0</span><span class='Ligature'>‿</span><span class='Number'>1</span> <span class='Function'>≍</span> <span class='String'>"abcde"</span> <span class='Comment'># Corresponding indices and values |
