aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2022-12-01 17:21:30 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2022-12-01 17:21:30 -0500
commit5190a3ecdc5768b88b40973845f184966f6744d7 (patch)
tree3984c1cf5c2a5ef794cec64ea58edef69f69ba08
parentdd7badf140157f86581870626f68bd1a1a0fcc8c (diff)
•ParseFloat in JS
-rw-r--r--docs/bqn.js8
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)))
};