From 681f958f0d9dfbcd1f42753557a1a729c384ca52 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Thu, 4 Mar 2021 22:00:26 -0500 Subject: =?UTF-8?q?Add=20=E2=80=A2Eval,=20=E2=80=A2Using,=20and=20?= =?UTF-8?q?=E2=80=A2Fmt=20to=20spec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/spec/system.html | 28 ++++++++++++++++++++++++++++ spec/system.md | 11 +++++++++++ 2 files changed, 39 insertions(+) diff --git a/docs/spec/system.html b/docs/spec/system.html index 64a43ce6..fead3b97 100644 --- a/docs/spec/system.html +++ b/docs/spec/system.html @@ -69,6 +69,30 @@
  • Lines: BQN strings. The file is decoded as with chars, then split into lines by CR, LR, or CRLF line endings.
  • Bytes: Single-byte values, stored as BQN characters from @ to @+255.
  • +

    Execution and scope manipulation

    + + + + + + + + + + + + + + + + + + + + + +
    NameSummary
    •BQNEvaluate the argument string in an isolated scope
    •EvalEvaluate the argument string in the current scope
    •UsingImport 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.

    Input and output

    @@ -82,6 +106,10 @@ + + + +
    •Out Print argument string
    •FmtFormat value for printing

    Operation properties

    diff --git a/spec/system.md b/spec/system.md index 827af981..10d643ef 100644 --- a/spec/system.md +++ b/spec/system.md @@ -41,11 +41,22 @@ Functions `•FChars`, `•FLines`, and `•FBytes` are all ambivalent. If only - Lines: BQN strings. The file is decoded as with chars, then split into lines by CR, LR, or CRLF line endings. - Bytes: Single-byte values, stored as BQN characters from `@` to `@+255`. +## 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 + +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. + ## Input and output | Name | Summary |--------|---------------------- | `•Out` | Print argument string +| `•Fmt` | Format value for printing ## Operation properties -- cgit v1.2.3