aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-03-21 20:20:07 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-03-21 20:20:07 -0400
commitbe057fcd9a82f6e82ad31ba70358c8318ad81fe5 (patch)
treed5b24f51eb8fd4822243ef2152fa9ea4f52b6104 /spec
parentf3fcc2928931c8ec0ca0770f71c52f5567390b10 (diff)
Add •ScopedEval
Diffstat (limited to 'spec')
-rw-r--r--spec/system.md13
1 files changed, 8 insertions, 5 deletions
diff --git a/spec/system.md b/spec/system.md
index 47c68445..c08ab9af 100644
--- a/spec/system.md
+++ b/spec/system.md
@@ -45,14 +45,17 @@ Functions `•FChars`, `•FLines`, and `•FBytes` are all ambivalent. If only
## Execution and scope manipulation
-| Name | Summary
-|------------|--------------------------
-| `•BQN` | Evaluate the argument string in an isolated scope
-| `•Eval` | Evaluate the argument string in the current scope
-| `•Using` | Import all values from the argument namespace
+| Name | Summary
+|---------------|--------------------------
+| `•BQN` | Evaluate the argument string in an isolated scope
+| `•Eval` | Evaluate the argument string in the current scope
+| `•ScopedEval` | Evaluate the argument string in a scope
+| `•Using` | Import all values from the argument namespace
The effect of `•Eval` should be the same as if its argument were written as source code in the scope where `•Eval` appears. It can define variables, and modify those in the current scope or a parent.
+`•ScopedEval` creates as new scope for evaluation as it is loaded. Other than its syntactic role, it is effectively equivalent to `{•Eval}`.
+
## Input and output
| Name | Summary