From 2a4671d571d86d02f571a49f7224d936d4dde345 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sat, 31 Dec 2022 12:22:04 -0500 Subject: =?UTF-8?q?=E2=80=A2ParseFloat=20spec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/spec/system.html | 5 +++++ spec/system.md | 15 +++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/docs/spec/system.html b/docs/spec/system.html index 87a7f942..6ec964f5 100644 --- a/docs/spec/system.html +++ b/docs/spec/system.html @@ -369,10 +369,15 @@ •Fmt Format value for printing + +•ParseFloat +Convert from string to floating point number +

•Out prints a string to stdout, with a trailing newline. •Show displays a BQN value to the programmer (the representation is not specified, and does not need to be plain text). •Fmt returns a string (not a character table: lines are separated by linefeeds) indicating how 𝕩 would be printed by the interactive environment. Both •Show and •Fmt may take a left argument configuring how the value should be formatted.

•Repr attempts to return a string so that •BQN •Repr 𝕩 matches 𝕩. If 𝕩 contains any mutable values (operations or namespaces), this is not possible. However, if such a values is stateless, in the sense that they don't access variables outside of their own scopes, it is permissible for •Repr to return source code that would create a value with identical behavior.

+

•ParseFloat returns the numeric value given by a string 𝕩 in integer, decimal, or scientific notation. The whole of 𝕩 must match the regular expression -?(\.[0-9]+|[0-9]+\.?[0-9]*)([eE][-+]?[0-9]+)? or an error is given. This format is similar to BQN's numeric literals but with many differences. Only - (not ¯) can be used for a negative sign, and a positive exponent may be optionally preceded by +. A dot . indicates the decimal regardless of locale. The function should make an effort to return the nearest possible value to the exact one represented, but is not required to round perfectly in all cases.

Terminal I/O

The system namespace •term gives fine-grained control of input and output when running in a terminal emulator or similar text-based interface.

diff --git a/spec/system.md b/spec/system.md index ffd93d1b..21ad04fc 100644 --- a/spec/system.md +++ b/spec/system.md @@ -159,17 +159,20 @@ Not yet specified. ## Input and output -| Name | Summary -|---------|---------------------- -| `•Out` | Print argument string -| `•Show` | Print argument value -| `•Repr` | String representation of `𝕩`, if possible -| `•Fmt` | Format value for printing +| Name | Summary +|---------------|---------------------- +| `•Out` | Print argument string +| `•Show` | Print argument value +| `•Repr` | String representation of `𝕩`, if possible +| `•Fmt` | Format value for printing +| `•ParseFloat` | Convert from string to floating point number `•Out` prints a string to stdout, with a trailing newline. `•Show` displays a BQN value to the programmer (the representation is not specified, and does not need to be plain text). `•Fmt` returns a string (not a character table: lines are separated by linefeeds) indicating how `𝕩` would be printed by the interactive environment. Both `•Show` and `•Fmt` may take a left argument configuring how the value should be formatted. `•Repr` attempts to return a string so that `•BQN •Repr 𝕩` matches `𝕩`. If `𝕩` contains any mutable values (operations or namespaces), this is not possible. However, if such a values is stateless, in the sense that they don't access variables outside of their own scopes, it is permissible for `•Repr` to return source code that would create a value with identical behavior. +`•ParseFloat` returns the numeric value given by a string `𝕩` in integer, decimal, or scientific notation. The whole of `𝕩` must match the regular expression `-?(\.[0-9]+|[0-9]+\.?[0-9]*)([eE][-+]?[0-9]+)?` or an error is given. This format is similar to BQN's numeric literals but with many differences. Only `-` (not `¯`) can be used for a negative sign, and a positive exponent may be optionally preceded by `+`. A dot `.` indicates the decimal regardless of locale. The function should make an effort to return the nearest possible value to the exact one represented, but is not required to round perfectly in all cases. + ### Terminal I/O The system namespace `•term` gives fine-grained control of input and output when running in a terminal emulator or similar text-based interface. -- cgit v1.2.3