aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-01-24 15:10:31 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-01-24 17:41:22 -0500
commitc6eaee8b153ac18d4faf6cf5daed8c531c5393cf (patch)
treeb31e1879ba7aa4acee4f0926cca82dd6ede3b4bd
parent3239344dfe438346183bb90b2d85e5e106ea4ae5 (diff)
Add shift functions, Rank, and Classify to Dyalog-BQN dictionary
-rw-r--r--doc/fromDyalog.md23
-rw-r--r--docs/doc/fromDyalog.html50
2 files changed, 51 insertions, 22 deletions
diff --git a/doc/fromDyalog.md b/doc/fromDyalog.md
index 201d22f4..a3c7c7a2 100644
--- a/doc/fromDyalog.md
+++ b/doc/fromDyalog.md
@@ -36,15 +36,20 @@ Dyalog uses value types (array, function, and so on) to determine syntax while B
Here are some closest equivalents in Dyalog APL for the BQN functions that don't use the same glyphs as APL. Correspondence can be approximate, and `⌽` is just used as a decorator to mean "reverse some things".
-| BQN | `⋆` | `√` | `∧` | `∨` | `¬` | `≠` | `<` | `>` | `≢` | `⥊` | `∾` | `≍` |
-|:-----:|:---:|:--------:|:-----:|:-----:|:-----:|:---:|:---:|:---:|:---:|:---:|:-----:|:------:|
-| Monad | `*` | `*∘(÷2)` | `[⍋]` | `[⍒]` | `~` | `≢` | `⊂` | `↑` | `⍴` | `,` | `⊃,⌿` | `↑,⍥⊂` |
-| Dyad | `*` | `*∘÷⍨` | `∧` | `∨` | `1+-` | `≠` | `<` | `>` | `≢` | `⍴` | `⍪` | `↑,⍥⊂` |
-
-| BQN | `↑` | `↓` | `↕` | `/` | `⍋` | `⍒` | `⊏` | `⊑` | `⊐` | `⊒` | `∊` | `⍷` | `⊔` |
-|:-----:|:----:|:-------:|:----:|:---:|:---:|:-----:|:----:|:---:|:---:|:---:|:---:|:---:|:----------:|
-| Monad | `,⍀` | `⌽,⌽⍀⌽` | `⍳` | `⍸` | `⍋` | `⍒` | `⊣⌿` | `⊃` | | `…` | `≠` | `∪` | `⌸` |
-| Dyad | `↑` | `↓` | `,⌿` | `⌿` | `⍸` | `⌽⍸⌽` | `⌷` | `⊃` | `⍳` | `…` | `∊` | `⍷` | `⌸` or `⊆` |
+| BQN | `⋆` | `√` | `∧` | `∨` | `¬` | `=` | `≠` | `<` | `>` | `≢` | `⥊` |
+|:-----:|:---:|:--------:|:-----:|:-----:|:-----:|:-----:|:---:|:---:|:---:|:---:|:---:|
+| Monad | `*` | `*∘(÷2)` | `[⍋]` | `[⍒]` | `~` | `≢⍤⍴` | `≢` | `⊂` | `↑` | `⍴` | `,` |
+| Dyad | `*` | `*∘÷⍨` | `∧` | `∨` | `1+-` | `=` | `≠` | `<` | `>` | `≢` | `⍴` |
+
+| BQN | `∾` | `≍` | `↑` | `↓` | `↕` | `»` | `«` |
+|:-----:|:-----:|:------:|:----:|:-------:|:----:|:------------:|:-------------:|
+| Monad | `⊃,⌿` | `↑,⍥⊂` | `,⍀` | `⌽,⌽⍀⌽` | `⍳` | `≢↑(¯1-≢)↑⊢` | `-⍤≢↑(1+≢)↑⊢` |
+| Dyad | `⍪` | `↑,⍥⊂` | `↑` | `↓` | `,⌿` | `≢⍤⊢↑⍪` | `-⍤≢⍤⊢↑⍪⍨` |
+
+| BQN | `/` | `⍋` | `⍒` | `⊏` | `⊑` | `⊐` | `⊒` | `∊` | `⍷` | `⊔` |
+|:-----:|:---:|:---:|:-----:|:----:|:---:|:-----:|:---:|:---:|:---:|:----------:|
+| Monad | `⍸` | `⍋` | `⍒` | `⊣⌿` | `⊃` | `∪⍳⊢` | `…` | `≠` | `∪` | `⌸` |
+| Dyad | `⌿` | `⍸` | `⌽⍸⌽` | `⌷` | `⊃` | `⍳` | `…` | `∊` | `⍷` | `⌸` or `⊆` |
Modifiers are a little harder. Many have equivalents in some cases, but Dyalog sometimes chooses different functionality based on whether the operand is an array. In BQN an array is always treated as a constant function.
diff --git a/docs/doc/fromDyalog.html b/docs/doc/fromDyalog.html
index d6a429b9..68e4758f 100644
--- a/docs/doc/fromDyalog.html
+++ b/docs/doc/fromDyalog.html
@@ -80,13 +80,12 @@
<th align="center"><code><span class='Function'>∧</span></code></th>
<th align="center"><code><span class='Function'>∨</span></code></th>
<th align="center"><code><span class='Function'>¬</span></code></th>
+<th align="center"><code><span class='Function'>=</span></code></th>
<th align="center"><code><span class='Function'>≠</span></code></th>
<th align="center"><code><span class='Function'>&lt;</span></code></th>
<th align="center"><code><span class='Function'>&gt;</span></code></th>
<th align="center"><code><span class='Function'>≢</span></code></th>
<th align="center"><code><span class='Function'>⥊</span></code></th>
-<th align="center"><code><span class='Function'>∾</span></code></th>
-<th align="center"><code><span class='Function'>≍</span></code></th>
</tr>
</thead>
<tbody>
@@ -97,13 +96,12 @@
<td align="center"><code><span class='Value'>[</span><span class='Function'>⍋</span><span class='Value'>]</span></code></td>
<td align="center"><code><span class='Value'>[</span><span class='Function'>⍒</span><span class='Value'>]</span></code></td>
<td align="center"><code><span class='Value'>~</span></code></td>
+<td align="center"><code><span class='Function'>≢</span><span class='Value'>⍤⍴</span></code></td>
<td align="center"><code><span class='Function'>≢</span></code></td>
<td align="center"><code><span class='Value'>⊂</span></code></td>
<td align="center"><code><span class='Function'>↑</span></code></td>
<td align="center"><code><span class='Value'>⍴</span></code></td>
<td align="center"><code><span class='Separator'>,</span></code></td>
-<td align="center"><code><span class='Value'>⊃</span><span class='Separator'>,</span><span class='Value'>⌿</span></code></td>
-<td align="center"><code><span class='Function'>↑</span><span class='Separator'>,</span><span class='Value'>⍥⊂</span></code></td>
</tr>
<tr>
<td align="center">Dyad</td>
@@ -112,13 +110,12 @@
<td align="center"><code><span class='Function'>∧</span></code></td>
<td align="center"><code><span class='Function'>∨</span></code></td>
<td align="center"><code><span class='Number'>1</span><span class='Function'>+-</span></code></td>
+<td align="center"><code><span class='Function'>=</span></code></td>
<td align="center"><code><span class='Function'>≠</span></code></td>
<td align="center"><code><span class='Function'>&lt;</span></code></td>
<td align="center"><code><span class='Function'>&gt;</span></code></td>
<td align="center"><code><span class='Function'>≢</span></code></td>
<td align="center"><code><span class='Value'>⍴</span></code></td>
-<td align="center"><code><span class='Value'>⍪</span></code></td>
-<td align="center"><code><span class='Function'>↑</span><span class='Separator'>,</span><span class='Value'>⍥⊂</span></code></td>
</tr>
</tbody>
</table>
@@ -126,9 +123,42 @@
<thead>
<tr>
<th align="center">BQN</th>
+<th align="center"><code><span class='Function'>∾</span></code></th>
+<th align="center"><code><span class='Function'>≍</span></code></th>
<th align="center"><code><span class='Function'>↑</span></code></th>
<th align="center"><code><span class='Function'>↓</span></code></th>
<th align="center"><code><span class='Function'>↕</span></code></th>
+<th align="center"><code><span class='Function'>»</span></code></th>
+<th align="center"><code><span class='Function'>«</span></code></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="center">Monad</td>
+<td align="center"><code><span class='Value'>⊃</span><span class='Separator'>,</span><span class='Value'>⌿</span></code></td>
+<td align="center"><code><span class='Function'>↑</span><span class='Separator'>,</span><span class='Value'>⍥⊂</span></code></td>
+<td align="center"><code><span class='Separator'>,</span><span class='Value'>⍀</span></code></td>
+<td align="center"><code><span class='Function'>⌽</span><span class='Separator'>,</span><span class='Function'>⌽</span><span class='Value'>⍀</span><span class='Function'>⌽</span></code></td>
+<td align="center"><code><span class='Value'>⍳</span></code></td>
+<td align="center"><code><span class='Function'>≢↑</span><span class='Paren'>(</span><span class='Number'>¯1</span><span class='Function'>-≢</span><span class='Paren'>)</span><span class='Function'>↑⊢</span></code></td>
+<td align="center"><code><span class='Function'>-</span><span class='Value'>⍤</span><span class='Function'>≢↑</span><span class='Paren'>(</span><span class='Number'>1</span><span class='Function'>+≢</span><span class='Paren'>)</span><span class='Function'>↑⊢</span></code></td>
+</tr>
+<tr>
+<td align="center">Dyad</td>
+<td align="center"><code><span class='Value'>⍪</span></code></td>
+<td align="center"><code><span class='Function'>↑</span><span class='Separator'>,</span><span class='Value'>⍥⊂</span></code></td>
+<td align="center"><code><span class='Function'>↑</span></code></td>
+<td align="center"><code><span class='Function'>↓</span></code></td>
+<td align="center"><code><span class='Separator'>,</span><span class='Value'>⌿</span></code></td>
+<td align="center"><code><span class='Function'>≢</span><span class='Value'>⍤</span><span class='Function'>⊢↑</span><span class='Value'>⍪</span></code></td>
+<td align="center"><code><span class='Function'>-</span><span class='Value'>⍤</span><span class='Function'>≢</span><span class='Value'>⍤</span><span class='Function'>⊢↑</span><span class='Value'>⍪⍨</span></code></td>
+</tr>
+</tbody>
+</table>
+<table>
+<thead>
+<tr>
+<th align="center">BQN</th>
<th align="center"><code><span class='Function'>/</span></code></th>
<th align="center"><code><span class='Function'>⍋</span></code></th>
<th align="center"><code><span class='Function'>⍒</span></code></th>
@@ -144,15 +174,12 @@
<tbody>
<tr>
<td align="center">Monad</td>
-<td align="center"><code><span class='Separator'>,</span><span class='Value'>⍀</span></code></td>
-<td align="center"><code><span class='Function'>⌽</span><span class='Separator'>,</span><span class='Function'>⌽</span><span class='Value'>⍀</span><span class='Function'>⌽</span></code></td>
-<td align="center"><code><span class='Value'>⍳</span></code></td>
<td align="center"><code><span class='Value'>⍸</span></code></td>
<td align="center"><code><span class='Function'>⍋</span></code></td>
<td align="center"><code><span class='Function'>⍒</span></code></td>
<td align="center"><code><span class='Function'>⊣</span><span class='Value'>⌿</span></code></td>
<td align="center"><code><span class='Value'>⊃</span></code></td>
-<td align="center"></td>
+<td align="center"><code><span class='Value'>∪⍳</span><span class='Function'>⊢</span></code></td>
<td align="center"><code><span class='Value'>…</span></code></td>
<td align="center"><code><span class='Function'>≠</span></code></td>
<td align="center"><code><span class='Value'>∪</span></code></td>
@@ -160,9 +187,6 @@
</tr>
<tr>
<td align="center">Dyad</td>
-<td align="center"><code><span class='Function'>↑</span></code></td>
-<td align="center"><code><span class='Function'>↓</span></code></td>
-<td align="center"><code><span class='Separator'>,</span><span class='Value'>⌿</span></code></td>
<td align="center"><code><span class='Value'>⌿</span></code></td>
<td align="center"><code><span class='Value'>⍸</span></code></td>
<td align="center"><code><span class='Function'>⌽</span><span class='Value'>⍸</span><span class='Function'>⌽</span></code></td>