aboutsummaryrefslogtreecommitdiff
path: root/docs/doc/fromJ.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doc/fromJ.html')
-rw-r--r--docs/doc/fromJ.html88
1 files changed, 87 insertions, 1 deletions
diff --git a/docs/doc/fromJ.html b/docs/doc/fromJ.html
index 72d4f59b..432bf72f 100644
--- a/docs/doc/fromJ.html
+++ b/docs/doc/fromJ.html
@@ -279,6 +279,7 @@
<th align="center"><code><span class='Modifier2'>⌾</span></code></th>
<th align="center"><code><span class='Modifier2'>⊘</span></code></th>
<th align="center"><code><span class='Modifier2'>◶</span></code></th>
+<th align="center"><code><span class='Modifier2'>⎊</span></code></th>
</tr>
</thead>
<tbody>
@@ -291,6 +292,7 @@
<td align="center"><code><span class='Value'>&amp;</span><span class='Number'>.</span><span class='Value'>:</span></code></td>
<td align="center"><code><span class='Value'>:</span></code></td>
<td align="center"><code><span class='String'>@</span><span class='Number'>.</span></code></td>
+<td align="center"><code><span class='Value'>::</span></code></td>
</tr>
</tbody>
</table>
@@ -383,6 +385,36 @@
</tr>
</tbody>
</table>
+<table>
+<thead>
+<tr>
+<th align="center">J</th>
+<th align="center"><code><span class='Value'>~</span></code></th>
+<th align="center"><code><span class='String'>@</span><span class='Value'>:</span></code></th>
+<th align="center"><code><span class='Value'>&amp;:</span></code></th>
+<th align="center"><code><span class='Value'>&amp;</span><span class='Number'>.</span><span class='Value'>:</span></code></th>
+<th align="center"><code><span class='Value'>:</span></code></th>
+<th align="center"><code><span class='Function'>/</span></code></th>
+<th align="center"><code><span class='String'>&quot;</span></code></th>
+<th align="center"><code><span class='Function'>L</span><span class='Value'>:</span></code></th>
+<th align="center"><code><span class='Value'>^:</span></code></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="center">BQN</td>
+<td align="center"><code><span class='Modifier'>˜</span></code></td>
+<td align="center"><code><span class='Modifier2'>∘</span></code></td>
+<td align="center"><code><span class='Modifier2'>○</span></code></td>
+<td align="center"><code><span class='Modifier2'>⌾</span></code></td>
+<td align="center"><code><span class='Modifier2'>⊘</span></code></td>
+<td align="center"><code><span class='Modifier'>˝</span></code></td>
+<td align="center"><code><span class='Modifier2'>⎉</span></code></td>
+<td align="center"><code><span class='Modifier2'>⚇</span></code></td>
+<td align="center"><code><span class='Modifier2'>⍟</span></code></td>
+</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>
<table>
@@ -546,7 +578,7 @@
</tr>
<tr>
<td><code><span class='Value'>i.</span></code></td>
-<td><code><span class='Function'>↕</span></code></td>
+<td><code><span class='Function'>↕</span></code> (<code><span class='Function'>⥊</span><span class='Modifier2'>⟜</span><span class='Paren'>(</span><span class='Function'>↕×</span><span class='Modifier'>´</span><span class='Paren'>)</span></code> for lists)</td>
<td><code><span class='Function'>⊐</span></code></td>
</tr>
<tr>
@@ -566,3 +598,57 @@
</tr>
</tbody>
</table>
+<p>Some J modifier expressions are translated below. BQN doesn't keep track of the rank of functions, so the &quot;close&quot; compositions <code><span class='String'>@</span></code> <code><span class='Value'>&amp;</span></code> <code><span class='Value'>&amp;</span><span class='Number'>.</span></code> have no BQN equivalents: instead, specify a rank after composing.</p>
+<table>
+<thead>
+<tr>
+<th>J</th>
+<th>BQN</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code><span class='Value'>&amp;</span><span class='Number'>.</span><span class='Function'>&gt;</span></code></td>
+<td><code><span class='Modifier'>¨</span></code></td>
+</tr>
+<tr>
+<td><code><span class='Function'>F</span><span class='Modifier'>`</span><span class='Function'>G</span><span class='Modifier'>`</span><span class='Function'>H</span><span class='String'>@</span><span class='Number'>.C</span></code></td>
+<td><code><span class='Function'>C</span><span class='Modifier2'>◶</span><span class='Bracket'>⟨</span><span class='Function'>F</span><span class='Separator'>,</span><span class='Function'>G</span><span class='Separator'>,</span><span class='Function'>H</span><span class='Bracket'>⟩</span></code></td>
+</tr>
+<tr>
+<td><code><span class='Value'>x</span> <span class='Value'>y</span><span class='Brace'>}</span> <span class='Value'>z</span></code></td>
+<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>
+</tr>
+</tbody>
+</table>
+<p>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 <code><span class='Function'>F</span><span class='Modifier'>¨</span></code> to apply a function to each of these, and <code><span class='Function'>&gt;F</span><span class='Modifier'>¨</span></code> to apply a function and merge the results into a single array.</p>
+<table>
+<thead>
+<tr>
+<th>J</th>
+<th>Monad</th>
+<th>Dyad</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code><span class='Function'>/</span><span class='Number'>.</span></code></td>
+<td><code><span class='Paren'>(</span><span class='Function'>+</span><span class='Modifier'>⌜´</span><span class='Function'>↕</span><span class='Modifier'>¨</span><span class='Modifier2'>∘</span><span class='Function'>≢</span><span class='Paren'>)</span><span class='Modifier2'>⊸</span><span class='Function'>⊔</span></code></td>
+<td><code><span class='Function'>⊐</span><span class='Modifier2'>⊸</span><span class='Function'>⊔</span></code></td>
+</tr>
+<tr>
+<td><code><span class='Value'>\</span></code></td>
+<td><code><span class='Number'>1</span><span class='Function'>↓↑</span></code></td>
+<td><code><span class='Function'>&lt;</span><span class='Modifier'>˘</span><span class='Function'>↕</span></code></td>
+</tr>
+<tr>
+<td><code><span class='Value'>\</span><span class='Number'>.</span></code></td>
+<td><code><span class='Number'>¯1</span><span class='Function'>↓↓</span></code></td>
+<td></td>
+</tr>
+</tbody>
+</table>