aboutsummaryrefslogtreecommitdiff
path: root/docs/doc
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-04-09 08:08:14 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-04-09 08:08:14 -0400
commitd22b685b0135e0e36fa02b9e0f4336c6893d0b0f (patch)
treec2928a3122d78fb316be25a83a001e5c9bb07010 /docs/doc
parent3fd1b67c25fd68aa69c9b0e7d86f8e85a8e6a15b (diff)
Fix some swapped identifiers
Diffstat (limited to 'docs/doc')
-rw-r--r--docs/doc/control.html6
1 files changed, 3 insertions, 3 deletions
diff --git a/docs/doc/control.html b/docs/doc/control.html
index ab006e98..c00ce6e5 100644
--- a/docs/doc/control.html
+++ b/docs/doc/control.html
@@ -10,7 +10,7 @@
<p>The surfeit of ways to write control structures could be a bit of an issue for reading BQN. My hope is that the community can eventually settle on a smaller set of standard forms to recommend so that you won't have to recognize all the variants given here. On the other hand, the cost of using specialized control structures is lower in a large project without too many contributors. In this case BQN's flexibility allows developers to adapt to the project's particular demands (for example, some programs use switch/case statements heavily but most do not).</p>
<p>The useful control structures introduced here are collected as shortened definitions below.</p>
<pre><span class='Function'>If</span> <span class='Gets'>โ†</span> <span class='Brace'>{</span><span class='Function'>๐•</span><span class='Modifier2'>โŸ</span><span class='Function'>๐•Ž</span><span class='String'>@</span><span class='Brace'>}</span><span class='Modifier'>ยด</span> <span class='Comment'># Also Repeat
-</span><span class='Function'>IfElse</span> <span class='Gets'>โ†</span> <span class='Brace'>{</span><span class='Value'>c</span><span class='Ligature'>โ€ฟ</span><span class='Function'>F</span><span class='Ligature'>โ€ฟ</span><span class='Function'>T</span><span class='Value'>:</span> <span class='Value'>c</span><span class='Modifier2'>โ—ถ</span><span class='Function'>T</span><span class='Ligature'>โ€ฟ</span><span class='Function'>F</span><span class='String'>@</span><span class='Brace'>}</span>
+</span><span class='Function'>IfElse</span> <span class='Gets'>โ†</span> <span class='Brace'>{</span><span class='Value'>c</span><span class='Ligature'>โ€ฟ</span><span class='Function'>T</span><span class='Ligature'>โ€ฟ</span><span class='Function'>F</span><span class='Value'>:</span> <span class='Value'>c</span><span class='Modifier2'>โ—ถ</span><span class='Function'>F</span><span class='Ligature'>โ€ฟ</span><span class='Function'>T</span><span class='String'>@</span><span class='Brace'>}</span>
<span class='Function'>While</span> <span class='Gets'>โ†</span> <span class='Brace'>{</span><span class='Value'>๐•จ</span><span class='Brace'>{</span><span class='Function'>๐•Š</span><span class='Modifier2'>โˆ˜</span><span class='Function'>๐”พ</span><span class='Modifier2'>โŸ</span><span class='Function'>๐”ฝ</span><span class='Value'>๐•ฉ</span><span class='Brace'>}</span><span class='Value'>๐•ฉ</span><span class='String'>@</span><span class='Brace'>}</span><span class='Modifier'>ยด</span> <span class='Comment'># While 1โ€ฟ{... to run forever
</span><span class='Function'>DoWhile</span> <span class='Gets'>โ†</span> <span class='Brace'>{</span><span class='Value'>๐•จ</span><span class='Brace'>{</span><span class='Function'>๐•Š</span><span class='Modifier2'>โŸ</span><span class='Function'>๐”ฝ๐”พ</span><span class='Value'>๐•ฉ</span><span class='Brace'>}</span><span class='Value'>๐•ฉ</span><span class='String'>@</span><span class='Brace'>}</span><span class='Modifier'>ยด</span>
<span class='Function'>For</span> <span class='Gets'>โ†</span> <span class='Brace'>{</span><span class='Function'>I</span><span class='Ligature'>โ€ฟ</span><span class='Function'>C</span><span class='Ligature'>โ€ฟ</span><span class='Function'>P</span><span class='Ligature'>โ€ฟ</span><span class='Function'>A</span><span class='Value'>:</span> <span class='Function'>I</span><span class='String'>@</span> <span class='Separator'>โ‹„</span> <span class='Brace'>{</span><span class='Function'>๐•Š</span><span class='Modifier2'>โˆ˜</span><span class='Function'>P</span><span class='Modifier2'>โˆ˜</span><span class='Function'>A</span><span class='Modifier2'>โŸ</span><span class='Function'>C</span> <span class='Value'>๐•ฉ</span><span class='Brace'>}</span><span class='String'>@</span><span class='Brace'>}</span>
@@ -60,7 +60,7 @@
<h2 id="if-else">If-Else</h2>
<p>Despite the name, an if-else statement is most closely related to a <a href="#switch-case">switch-case</a> statement: in fact, it's just a special case where the two cases are true (<code><span class='Number'>1</span></code>) and false (<code><span class='Number'>0</span></code>). As a result, we can implement it either with Choose (<code><span class='Modifier2'>โ—ถ</span></code>) or with <a href="block.html#case-headers">case headers</a> of <code><span class='Number'>1</span></code> and <code><span class='Number'>0</span></code>.</p>
<p>When using Choose, note that the natural ordering places the false case before the true one to match list index ordering. To get the typical if-else order, the condition should be negated or the statements reversed. Here's a function to get an if-else statement by swapping the conditions, and two ways its application might be written.</p>
-<pre><span class='Function'>IfElse</span> <span class='Gets'>โ†</span> <span class='Brace'>{</span><span class='Value'>cond</span><span class='Ligature'>โ€ฟ</span><span class='Function'>False</span><span class='Ligature'>โ€ฟ</span><span class='Function'>True</span><span class='Value'>:</span> <span class='Value'>cond</span><span class='Modifier2'>โ—ถ</span><span class='Function'>True</span><span class='Ligature'>โ€ฟ</span><span class='Function'>False</span> <span class='String'>@</span><span class='Brace'>}</span>
+<pre><span class='Function'>IfElse</span> <span class='Gets'>โ†</span> <span class='Brace'>{</span><span class='Value'>cond</span><span class='Ligature'>โ€ฟ</span><span class='Function'>True</span><span class='Ligature'>โ€ฟ</span><span class='Function'>False</span><span class='Value'>:</span> <span class='Value'>cond</span><span class='Modifier2'>โ—ถ</span><span class='Function'>False</span><span class='Ligature'>โ€ฟ</span><span class='Function'>True</span> <span class='String'>@</span><span class='Brace'>}</span>
<span class='Function'>IfElse</span> <span class='Bracket'>โŸจ</span><span class='Value'>๐•ฉ</span><span class='Function'>&lt;</span><span class='Value'>mid</span><span class='Function'>โŠ‘</span><span class='Value'>๐•จ</span>
<span class='Brace'>{</span><span class='Value'>๐•ค</span><span class='Separator'>โ‹„</span> <span class='Value'>hi</span><span class='Gets'>โ†ฉ</span><span class='Value'>mid</span><span class='Brace'>}</span>
@@ -84,7 +84,7 @@
<h3 id="chained-if-else">Chained If-Else</h3>
<p>One pattern in imperative languages is to check one condition and apply an action if it succeeds, but check a different condition if it fails, in sequence until some condition succeeds or every one has been checked. Languages might make this pattern easier by making if-else right associative, so that the programmer can write an <code><span class='Value'>if</span></code> statement followed by a sequence of <code><span class='Value'>else</span> <span class='Value'>if</span></code> &quot;statements&quot;, or might just provide a unified <code><span class='Value'>elif</span></code> keyword that works similarly (while this <em>is</em> a common pattern, I suspect it's used more often than it's really wanted because of this syntactic support).</p>
<p>In BQN it's possible to nest <code><span class='Function'>IfElse</span></code> expressions, but it's also possible to write a control structure that chains them all at one level. For this statement the input will be a sequence of <code><span class='Bracket'>โŸจ</span><span class='Function'>Test</span><span class='Separator'>,</span><span class='Function'>Action</span><span class='Bracket'>โŸฉ</span></code> pairs, followed by a final action to perform if no test succeeds. The first test is always performed; other tests should be wrapped in blocks because otherwise they'll be executed even if an earlier test succeeded.</p>
-<pre><span class='Function'>Test</span> <span class='Gets'>โ†</span> <span class='Brace'>{</span><span class='Value'>fn</span><span class='Gets'>โ†</span><span class='Brace'>{</span><span class='Function'>Cond</span><span class='Ligature'>โ€ฟ</span><span class='Function'>Act</span> <span class='Function'>๐•Š</span> <span class='Value'>else:</span> <span class='Function'>Cond</span><span class='Modifier2'>โ—ถ</span><span class='Function'>Act</span><span class='Ligature'>โ€ฟ</span><span class='Function'>Else</span><span class='Brace'>}</span><span class='Modifier'>ยด</span><span class='Value'>๐•ฉ</span> <span class='Separator'>โ‹„</span> <span class='Function'>Fn</span><span class='String'>@</span><span class='Brace'>}</span>
+<pre><span class='Function'>Test</span> <span class='Gets'>โ†</span> <span class='Brace'>{</span><span class='Value'>fn</span><span class='Gets'>โ†</span><span class='Brace'>{</span><span class='Function'>Cond</span><span class='Ligature'>โ€ฟ</span><span class='Function'>Act</span> <span class='Function'>๐•Š</span> <span class='Value'>else:</span> <span class='Function'>Cond</span><span class='Modifier2'>โ—ถ</span><span class='Function'>Else</span><span class='Ligature'>โ€ฟ</span><span class='Function'>Act</span><span class='Brace'>}</span><span class='Modifier'>ยด</span><span class='Value'>๐•ฉ</span> <span class='Separator'>โ‹„</span> <span class='Function'>Fn</span><span class='String'>@</span><span class='Brace'>}</span>
<span class='Function'>Test</span> <span class='Bracket'>โŸจ</span>
<span class='Paren'>(</span> <span class='Value'>a</span><span class='Function'>&lt;</span><span class='Value'>b</span><span class='Paren'>)</span><span class='Ligature'>โ€ฟ</span><span class='Brace'>{</span><span class='Value'>๐•ค</span><span class='Separator'>โ‹„</span><span class='Value'>a</span><span class='Function'>+</span><span class='Gets'>โ†ฉ</span><span class='Number'>1</span><span class='Brace'>}</span>