From be057fcd9a82f6e82ad31ba70358c8318ad81fe5 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sun, 21 Mar 2021 20:20:07 -0400 Subject: =?UTF-8?q?Add=20=E2=80=A2ScopedEval?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/spec/system.html | 5 +++++ spec/system.md | 13 ++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/docs/spec/system.html b/docs/spec/system.html index 4a028f92..255265f4 100644 --- a/docs/spec/system.html +++ b/docs/spec/system.html @@ -88,12 +88,17 @@ 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

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 -- cgit v1.2.3