aboutsummaryrefslogtreecommitdiff
path: root/docs/doc/syntax.html
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-10-03 16:38:35 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-10-03 16:38:35 -0400
commit673de1c627a2046123e1693e9e6508399a028508 (patch)
tree86303316523319eeebcf0e0c52a2be781089c286 /docs/doc/syntax.html
parent8846e63a6f1fe51ee9a68dc511cc6fcdbf54efa6 (diff)
Write files directly from md.bqn, not gendocs (removes trailing empty lines)
Diffstat (limited to 'docs/doc/syntax.html')
-rw-r--r--docs/doc/syntax.html1
1 files changed, 0 insertions, 1 deletions
diff --git a/docs/doc/syntax.html b/docs/doc/syntax.html
index 427f05c9..0a6aab58 100644
--- a/docs/doc/syntax.html
+++ b/docs/doc/syntax.html
@@ -156,4 +156,3 @@
<p>Blocks are written with curly braces <code><span class='Brace'>{}</span></code> and can be used to group expressions or define functions and modifiers. The contents are simply a sequence of expressions, where each is evaluated and the result of the last is returned in order to evaluate the block. This result can have any value, and its syntactic role in the calling context is determined by the normal rules: functions return subjects and modifiers return functions. Blocks have lexical scope.</p>
<p>The special names <code><span class='Value'>𝕨</span></code> and <code><span class='Value'>𝕩</span></code>, which stand for arguments, and <code><span class='Value'>𝕗</span></code> and <code><span class='Value'>𝕘</span></code>, which stand for operands, are available inside curly braces. Like ordinary names, the lowercase forms indicate subjects and the uppercase forms <code><span class='Function'>𝕎𝕏𝔽𝔾</span></code> indicate functions. The type and syntactic role of the block is determined by its contents: a 2-modifier contains <code><span class='Value'>𝕘</span></code>, a 1-modifier contains <code><span class='Value'>𝕗</span></code> but not <code><span class='Value'>𝕘</span></code>, and a function contains neither but does have one of <code><span class='Value'>𝕨𝕩𝕤</span><span class='Function'>𝕎𝕏𝕊</span></code>. If no special names are present the block is an <em>immediate block</em> and is evaluated as soon as it appears, with the result having a subject role.</p>
<p>A modifier can be evaluated twice: once when passed operands and again when the resulting function is passed arguments. If it contains <code><span class='Value'>𝕨</span></code> or <code><span class='Value'>𝕩</span></code>, the first evaluation simply remembers the operands, and the contents will be executed only on the second evaluation, when the arguments are available. If it doesn't contain these, then the contents are executed on the first evaluation and the result is treated as a function.</p>
-