aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-05-06 21:05:08 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-05-06 21:05:08 -0400
commita86600448c497751c871d0db950231faf198a134 (patch)
treea9d7277f4887bd9ec2a28e62667ae47b83feb648 /docs
parent7617630baeaefd6cc13637021105bf79453a40ef (diff)
Pervasion for math functions
Diffstat (limited to 'docs')
-rw-r--r--docs/bqn.js5
1 files changed, 2 insertions, 3 deletions
diff --git a/docs/bqn.js b/docs/bqn.js
index afb47111..7715d0f1 100644
--- a/docs/bqn.js
+++ b/docs/bqn.js
@@ -28,7 +28,7 @@ let makens = (keys, vals) => {
let n = Array(keys.length).fill().map((_,i)=>i);
n.names=keys.map(k=>k.toLowerCase()); vals.ns=n; return vals;
}
-let obj2ns = (obj, keys) => makens(keys, keys.map(k=>obj[k]));
+let obj2ns = (obj, keys, f) => makens(keys, keys.map(k=>(f?f:(v=>v))(obj[k])));
let getv= (a,i) => { let v=a[i]; if (v===null) throw Error("Runtime: Variable referenced before definition"); return v; }
let get = x => x.e ? getv(x.e,x.p) : arr(x.map(c=>get(c)), x.sh);
@@ -434,13 +434,12 @@ let extendedbqn = (x,w) => {
let bqn = bqngen(compgen(list(pr)),list([rt,system]));
return (x,w)=>bqn(req1str("•BQN extension",x,w));
}
-let trig = "cos cosh sin sinh tan tanh";
let dynsys = f => { f.dynamic=1; return f; }
let sysvals = {
bqn:(x,w)=> bqn(req1str("•BQN",x,w)), js:dojs, extendedbqn,
type, glyph, decompose, fmt:fmt1, unixtime,
listsys: dynsys(() => list(Object.keys(sysvals).map(str).sort())),
- math: obj2ns(Math,("LN10 LN2 LOG10E LOG2E PI SQRT1_2 SQRT2 cbrt expm1 hypot log10 log1p log2 round trunc atan2 "+trig).split(" "))
+ math: obj2ns(Math,("LN10 LN2 LOG10E LOG2E PI SQRT1_2 SQRT2 cbrt expm1 hypot log10 log1p log2 round trunc atan2 cos cosh sin sinh tan tanh").split(" "), f=>typeof f==="function"?runtime[60](f,0):f)
};
let make_timed = tfn => {