diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-01-29 21:31:38 -0500 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-01-29 21:31:38 -0500 |
| commit | 01044145c08b37da07ef0eec4bab1078aa95a57d (patch) | |
| tree | 0fe81191ec89541bbb1d137b33e255eea3631c72 | |
| parent | b5640364a736cc559508d980feb91f3d93ce662f (diff) | |
Fill in some gaps to finish off BQN-J dictionary
| -rw-r--r-- | doc/fromJ.md | 13 | ||||
| -rw-r--r-- | docs/doc/fromJ.html | 28 |
2 files changed, 32 insertions, 9 deletions
diff --git a/doc/fromJ.md b/doc/fromJ.md index c7d7c153..838f2310 100644 --- a/doc/fromJ.md +++ b/doc/fromJ.md @@ -105,9 +105,7 @@ Some other primitives are essentially the same in J and BQN, but with different |:---:|:---:|:----:|:----:|:-----:|:---:|:---:|:---:|:----:|:----:| | BQN | `˜` | `∘` | `○` | `⌾` | `⊘` | `˝` | `⎉` | `⚇` | `⍟` | -Additionally, `|.!.f` is `⥊⟜f⊸«` with a natural number left argument. Change `«` to `»` to rotate right instead of left. - -The tables below give approximate implementations of J primitives. J has a whole lot of complicated primitives that no one uses (some of which are officially deprecated), so not everything is translated here. +The tables below give approximate implementations of J primitives. J has a whole lot of complicated primitives that no one uses (some of which are officially deprecated), so not everything is translated here. Operations that only apply to complex numbers are omitted because no BQN implementation currently supports them. | J | Monad | Dyad |------|-------------------------|----- @@ -116,6 +114,7 @@ The tables below give approximate implementations of J primitives. J has a whole | `>:` | `1⊸+` | `≥` | `+.` | | `∨` | `+:` | `2⊸×` | `¬∨` +| `*.` | | `∧` | `*:` | `ט` | `¬∧` | `-.` | `¬` | `¬∘∊/⊣` | `-:` | `÷⟜2` | `≡` @@ -151,9 +150,13 @@ Some J modifier expressions are translated below. BQN doesn't keep track of the | J | BQN |----------------|----- | `&.>` | `¨` -| `` F`G`H@.C `` | `C◶⟨F,G,H⟩` +| ``F`G`H@.C`` | `C◶⟨F,G,H⟩` | `x y} z` | `x⌾(y⊸⊏) z` -| `F/ .G` | `F˝∘G⎉1‿∞` (dyadic) +| `x F/ .G y` | `x F˝∘G⎉1‿∞ y` +| `F:.G` | `{𝕊: 𝕨F𝕩; 𝕊⁼: 𝕨G𝕩}` +| `<;._1` | ``((1-˜¬×+`)=⟜⊏⊘⊣)⊔⊢`` +| `x {.!.f y` | `y » x⥊f` +| `x \|.!.f y` | `x ⥊⟜f⊸« y`, or `(-x) ⥊⟜f⊸» y` if `𝕩<0` BQN uses functions, not modifiers, for structural manipulation. The following table gives BQN functions corresponding to J's structural modifiers. The result is an array of arrays; use `F¨` to apply a function to each of these, and `>F¨` to apply a function and merge the results into a single array. diff --git a/docs/doc/fromJ.html b/docs/doc/fromJ.html index 432bf72f..4dbce0d8 100644 --- a/docs/doc/fromJ.html +++ b/docs/doc/fromJ.html @@ -415,8 +415,7 @@ </tr> </tbody> </table> -<p>Additionally, <code><span class='Function'>|</span><span class='Number'>.</span><span class='Function'>!</span><span class='Number'>.f</span></code> is <code><span class='Function'>⥊</span><span class='Modifier2'>⟜</span><span class='Value'>f</span><span class='Modifier2'>⊸</span><span class='Function'>«</span></code> with a natural number left argument. Change <code><span class='Function'>«</span></code> to <code><span class='Function'>»</span></code> to rotate right instead of left.</p> -<p>The tables below give approximate implementations of J primitives. J has a whole lot of complicated primitives that no one uses (some of which are officially deprecated), so not everything is translated here.</p> +<p>The tables below give approximate implementations of J primitives. J has a whole lot of complicated primitives that no one uses (some of which are officially deprecated), so not everything is translated here. Operations that only apply to complex numbers are omitted because no BQN implementation currently supports them.</p> <table> <thead> <tr> @@ -452,6 +451,11 @@ <td><code><span class='Function'>¬∨</span></code></td> </tr> <tr> +<td><code><span class='Value'>*</span><span class='Number'>.</span></code></td> +<td></td> +<td><code><span class='Function'>∧</span></code></td> +</tr> +<tr> <td><code><span class='Value'>*:</span></code></td> <td><code><span class='Function'>×</span><span class='Modifier'>˜</span></code></td> <td><code><span class='Function'>¬∧</span></code></td> @@ -620,8 +624,24 @@ <td><code><span class='Value'>x</span><span class='Modifier2'>⌾</span><span class='Paren'>(</span><span class='Value'>y</span><span class='Modifier2'>⊸</span><span class='Function'>⊏</span><span class='Paren'>)</span> <span class='Value'>z</span></code></td> </tr> <tr> -<td><code><span class='Function'>F/</span> <span class='Number'>.G</span></code></td> -<td><code><span class='Function'>F</span><span class='Modifier'>˝</span><span class='Modifier2'>∘</span><span class='Function'>G</span><span class='Modifier2'>⎉</span><span class='Number'>1</span><span class='Ligature'>‿</span><span class='Number'>∞</span></code> (dyadic)</td> +<td><code><span class='Value'>x</span> <span class='Function'>F/</span> <span class='Number'>.G</span> <span class='Value'>y</span></code></td> +<td><code><span class='Value'>x</span> <span class='Function'>F</span><span class='Modifier'>˝</span><span class='Modifier2'>∘</span><span class='Function'>G</span><span class='Modifier2'>⎉</span><span class='Number'>1</span><span class='Ligature'>‿</span><span class='Number'>∞</span> <span class='Value'>y</span></code></td> +</tr> +<tr> +<td><code><span class='Function'>F</span><span class='Value'>:</span><span class='Number'>.G</span></code></td> +<td><code><span class='Brace'>{</span><span class='Function'>𝕊</span><span class='Value'>:</span> <span class='Value'>𝕨</span><span class='Function'>F</span><span class='Value'>𝕩;</span> <span class='Function'>𝕊</span><span class='Modifier'>⁼</span><span class='Value'>:</span> <span class='Value'>𝕨</span><span class='Function'>G</span><span class='Value'>𝕩</span><span class='Brace'>}</span></code></td> +</tr> +<tr> +<td><code><span class='Function'><</span><span class='Value'>;</span><span class='Number'>._1</span></code></td> +<td><code><span class='Paren'>((</span><span class='Number'>1</span><span class='Function'>-</span><span class='Modifier'>˜</span><span class='Function'>¬×+</span><span class='Modifier'>`</span><span class='Paren'>)</span><span class='Function'>=</span><span class='Modifier2'>⟜</span><span class='Function'>⊏</span><span class='Modifier2'>⊘</span><span class='Function'>⊣</span><span class='Paren'>)</span><span class='Function'>⊔⊢</span></code></td> +</tr> +<tr> +<td><code><span class='Value'>x</span> <span class='Brace'>{</span><span class='Number'>.</span><span class='Function'>!</span><span class='Number'>.f</span> <span class='Value'>y</span></code></td> +<td><code><span class='Value'>y</span> <span class='Function'>»</span> <span class='Value'>x</span><span class='Function'>⥊</span><span class='Value'>f</span></code></td> +</tr> +<tr> +<td><code><span class='Value'>x</span> <span class='Function'>|</span><span class='Number'>.</span><span class='Function'>!</span><span class='Number'>.f</span> <span class='Value'>y</span></code></td> +<td><code><span class='Value'>x</span> <span class='Function'>⥊</span><span class='Modifier2'>⟜</span><span class='Value'>f</span><span class='Modifier2'>⊸</span><span class='Function'>«</span> <span class='Value'>y</span></code>, or <code><span class='Paren'>(</span><span class='Function'>-</span><span class='Value'>x</span><span class='Paren'>)</span> <span class='Function'>⥊</span><span class='Modifier2'>⟜</span><span class='Value'>f</span><span class='Modifier2'>⊸</span><span class='Function'>»</span> <span class='Value'>y</span></code> if <code><span class='Value'>𝕩</span><span class='Function'><</span><span class='Number'>0</span></code></td> </tr> </tbody> </table> |
