diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-10-03 16:38:35 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-10-03 16:38:35 -0400 |
| commit | 673de1c627a2046123e1693e9e6508399a028508 (patch) | |
| tree | 86303316523319eeebcf0e0c52a2be781089c286 /docs/spec/scope.html | |
| parent | 8846e63a6f1fe51ee9a68dc511cc6fcdbf54efa6 (diff) | |
Write files directly from md.bqn, not gendocs (removes trailing empty lines)
Diffstat (limited to 'docs/spec/scope.html')
| -rw-r--r-- | docs/spec/scope.html | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/docs/spec/scope.html b/docs/spec/scope.html index 6e8dd6ac..3893389e 100644 --- a/docs/spec/scope.html +++ b/docs/spec/scope.html @@ -22,4 +22,3 @@ <p>A <em>variable</em> is an entity that permits two operations: it can be <em>set</em> to a particular value, and its <em>value</em> can be obtained, resulting in the last value it was set to. When either operation is performed it is referred to as <em>accessing</em> the variable.</p> <p>When a body in a block is evaluated, a variable is created for each definition (that is, defined identifier instance) the body contains. Whenever another block—the block itself, not its contents—is evaluated during the execution of the block, it is linked to the currently-evaluating block, so that it will use the variables defined in this instance. These links are recursive, so that every instance of a block is linked to exactly one instance of each block that contains it. These links form a tree that is not necessarily related to the call stack of functions and modifiers. Using these links, the variable an identifier refers to is the one corresponding to that variable's definition in the linked instance of the containing scope for the definition.</p> <p>The first access to a variable must be made by its definition (this also means it sets the variable). If a different instance of its identifier accesses it first, then an error results. This can happen because every scope contained in a particular scope sees all the definitions it uses, and such a scope could be called before the definition is run. Because of conditional execution, this property must be checked at run time in general; however, in cases where it is possible to statically determine that a program will always violate it, a BQN instance can give an error at compile time rather than run time.</p> - |
