diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-12-01 17:21:30 -0500 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-12-01 17:21:30 -0500 |
| commit | 5190a3ecdc5768b88b40973845f184966f6744d7 (patch) | |
| tree | 3984c1cf5c2a5ef794cec64ea58edef69f69ba08 /docs | |
| parent | dd7badf140157f86581870626f68bd1a1a0fcc8c (diff) | |
•ParseFloat in JS
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/bqn.js | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/docs/bqn.js b/docs/bqn.js index 795f4fba..105f16f8 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -660,6 +660,12 @@ let primitives = dynsys(state => { return list(gl.map((g,i) => list([g,rt[i]]))); }); +let parsefloat = (x,w) => { + let n = req1str("•ParseFloat",x,w); + if (! /^-?(\.[0-9]+|[0-9]+\.?[0-9]*)([eE][-+]?[0-9]+)?$/.test(n)) throw Error("•ParseFloat: invalid float format"); + return parseFloat(n); +} + let isint = n => isnum(n) && n===(n|0); let isnat = n => isint(n) && n>=0; let fact = (x,w) => { @@ -781,7 +787,7 @@ let rand = (() => { let sysvals = { bqn:dynsys_copy(makebqnfn("•BQN",r=>run(...r))), rebqn, primitives, type, glyph, decompose, fmt:fmt1, repr, currenterror, unixtime, - js:dojs, math:mathns, ns:nsns, rand, + js:dojs, parsefloat, math:mathns, ns:nsns, rand, listsys: dynsys(_ => list(Object.keys(sysvals).sort().map(str))) }; |
