diff options
| -rw-r--r-- | docs/implementation/vm.html | 59 | ||||
| -rw-r--r-- | implementation/vm.md | 45 |
2 files changed, 61 insertions, 43 deletions
diff --git a/docs/implementation/vm.html b/docs/implementation/vm.html index 829c755d..46a8aa06 100644 --- a/docs/implementation/vm.html +++ b/docs/implementation/vm.html @@ -393,106 +393,121 @@ <tbody> <tr> <td align="right">0</td> -<td><code><span class='Function'>IsArray</span></code></td> -<td>1 if the right argument is an array, 0 otherwise</td> +<td><code><span class='Function'>Type</span></code></td> +<td><code><span class='Function'>β’Type</span></code></td> </tr> <tr> <td align="right">1</td> -<td><code><span class='Function'>Type</span></code></td> -<td>The fill value for array <code><span class='Value'>π©</span></code></td> +<td><code><span class='Function'>Decompose</span></code></td> +<td><code><span class='Function'>β’Decompose</span></code></td> </tr> <tr> <td align="right">2</td> +<td><code><span class='Function'>Glyph</span></code></td> +<td>(Unused) <code><span class='Function'>β’Glyph</span></code> for primitive <code><span class='Value'>π©</span></code></td> +</tr> +<tr> +<td align="right">3</td> +<td><code><span class='Function'>Fill</span></code></td> +<td>Get or set the fill value for array <code><span class='Value'>π©</span></code></td> +</tr> +<tr> +<td align="right">4</td> <td><code><span class='Function'>Log</span></code></td> <td><code><span class='Function'>β</span><span class='Modifier'>βΌ</span></code> (natural or base-<code><span class='Value'>π¨</span></code> logarithm) for atomic arguments</td> </tr> <tr> -<td align="right">3</td> +<td align="right">5</td> <td><code><span class='Function'>GroupLen</span></code></td> <td><code><span class='Function'>β </span><span class='Modifier'>Β¨</span><span class='Function'>β</span><span class='Value'>π©</span></code> for a valid list <code><span class='Value'>π©</span></code></td> </tr> <tr> -<td align="right">4</td> +<td align="right">6</td> <td><code><span class='Function'>GroupOrd</span></code></td> <td><code><span class='Function'>βΎβ</span><span class='Value'>π©</span></code> provided <code><span class='Value'>π¨</span></code> is <code><span class='Function'>GroupLen</span> <span class='Value'>π©</span></code></td> </tr> <tr> -<td align="right">5</td> +<td align="right">7</td> <td><code><span class='Function'>!</span></code></td> <td></td> </tr> <tr> -<td align="right">6</td> +<td align="right">8</td> <td><code><span class='Function'>+</span></code></td> <td>On two atoms</td> </tr> <tr> -<td align="right">7</td> +<td align="right">9</td> <td><code><span class='Function'>-</span></code></td> <td>On one or two atoms</td> </tr> <tr> -<td align="right">8</td> +<td align="right">10</td> <td><code><span class='Function'>Γ</span></code></td> <td>On two atoms</td> </tr> <tr> -<td align="right">9</td> +<td align="right">11</td> <td><code><span class='Function'>Γ·</span></code></td> <td>On one or two atoms</td> </tr> <tr> -<td align="right">10</td> +<td align="right">12</td> <td><code><span class='Function'>β</span></code></td> <td>On one or two atoms</td> </tr> <tr> -<td align="right">11</td> +<td align="right">13</td> <td><code><span class='Function'>β</span></code></td> <td>On one atom</td> </tr> <tr> -<td align="right">12</td> +<td align="right">14</td> <td><code><span class='Function'>=</span></code></td> <td>On one value or two atoms</td> </tr> <tr> -<td align="right">13</td> +<td align="right">15</td> <td><code><span class='Function'>β€</span></code></td> <td>On two atoms</td> </tr> <tr> -<td align="right">14</td> +<td align="right">16</td> <td><code><span class='Function'>β’</span></code></td> <td>For array <code><span class='Value'>π©</span></code></td> </tr> <tr> -<td align="right">15</td> +<td align="right">17</td> <td><code><span class='Function'>β₯</span></code></td> <td>For array <code><span class='Value'>π©</span></code> with no <code><span class='Value'>π¨</span></code> or <code><span class='Value'>π¨</span><span class='Function'>=</span><span class='Modifier2'>β</span><span class='Paren'>(</span><span class='Function'>Γ</span><span class='Modifier'>Β΄</span><span class='Paren'>)</span><span class='Function'>β’</span><span class='Value'>π©</span></code></td> </tr> <tr> -<td align="right">16</td> +<td align="right">18</td> <td><code><span class='Function'>β</span></code></td> <td>For atom <code><span class='Value'>π¨</span></code> and list <code><span class='Value'>π©</span></code></td> </tr> <tr> -<td align="right">17</td> +<td align="right">19</td> <td><code><span class='Function'>β</span></code></td> <td>For natural number <code><span class='Value'>π©</span></code></td> </tr> <tr> -<td align="right">18</td> +<td align="right">20</td> <td><code><span class='Modifier'>β</span></code></td> <td>On arrays</td> </tr> <tr> -<td align="right">19</td> +<td align="right">21</td> <td><code><span class='Modifier'>`</span></code></td> <td></td> </tr> <tr> -<td align="right">20</td> +<td align="right">22</td> +<td><code><span class='Modifier2'>_fillBy_</span></code></td> +<td><code><span class='Function'>π½</span></code> with result fill computed using <code><span class='Function'>πΎ</span></code></td> +</tr> +<tr> +<td align="right">23</td> <td><code><span class='Modifier2'>β</span></code></td> <td></td> </tr> diff --git a/implementation/vm.md b/implementation/vm.md index cc86180e..302717e0 100644 --- a/implementation/vm.md +++ b/implementation/vm.md @@ -119,27 +119,30 @@ The contents of a core runtime are given below. The names given are those used i | Ind | Name | Description / restrictions |----:|------------|--------------------------- -| 0 | `IsArray` | 1 if the right argument is an array, 0 otherwise -| 1 | `Type` | The fill value for array `π©` -| 2 | `Log` | `ββΌ` (natural or base-`π¨` logarithm) for atomic arguments -| 3 | `GroupLen` | `β Β¨βπ©` for a valid list `π©` -| 4 | `GroupOrd` | `βΎβπ©` provided `π¨` is `GroupLen π©` -| 5 | `!` | -| 6 | `+` | On two atoms -| 7 | `-` | On one or two atoms -| 8 | `Γ` | On two atoms -| 9 | `Γ·` | On one or two atoms -| 10 | `β` | On one or two atoms -| 11 | `β` | On one atom -| 12 | `=` | On one value or two atoms -| 13 | `β€` | On two atoms -| 14 | `β’` | For array `π©` -| 15 | `β₯` | For array `π©` with no `π¨` or `π¨=β(ΓΒ΄)β’π©` -| 16 | `β` | For atom `π¨` and list `π©` -| 17 | `β` | For natural number `π©` -| 18 | `β` | On arrays -| 19 | `` ` `` | -| 20 | `β` | +| 0 | `Type` | `β’Type` +| 1 | `Decompose`| `β’Decompose` +| 2 | `Glyph` | (Unused) `β’Glyph` for primitive `π©` +| 3 | `Fill` | Get or set the fill value for array `π©` +| 4 | `Log` | `ββΌ` (natural or base-`π¨` logarithm) for atomic arguments +| 5 | `GroupLen` | `β Β¨βπ©` for a valid list `π©` +| 6 | `GroupOrd` | `βΎβπ©` provided `π¨` is `GroupLen π©` +| 7 | `!` | +| 8 | `+` | On two atoms +| 9 | `-` | On one or two atoms +| 10 | `Γ` | On two atoms +| 11 | `Γ·` | On one or two atoms +| 12 | `β` | On one or two atoms +| 13 | `β` | On one atom +| 14 | `=` | On one value or two atoms +| 15 | `β€` | On two atoms +| 16 | `β’` | For array `π©` +| 17 | `β₯` | For array `π©` with no `π¨` or `π¨=β(ΓΒ΄)β’π©` +| 18 | `β` | For atom `π¨` and list `π©` +| 19 | `β` | For natural number `π©` +| 20 | `β` | On arrays +| 21 | `` ` `` | +| 22 | `_fillBy_` | `π½` with result fill computed using `πΎ` +| 23 | `β` | Remember that `+` and `-` can also work on characters in some circumstances, under the rules of affine characters. Other arithmetic functions should only accept numbers. `=` must work on numbers, characters, and primitives, and should give `0` without causing an error if the arguments have different types or one is a primitive and the other isn't. `β€` must work on numbers and characters. |
