diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-08-27 08:35:22 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-08-27 09:48:43 -0400 |
| commit | 2b68dc13845fd7e499c99e79dae56421f5ef611f (patch) | |
| tree | 6c0950edfed4605a70e8d903acac50a177f3592b /docs/bqn.js | |
| parent | 274ab64859f47f30dd0e5f79c35d4b483cc7ba5a (diff) | |
Fix Node REPL
Diffstat (limited to 'docs/bqn.js')
| -rw-r--r-- | docs/bqn.js | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/docs/bqn.js b/docs/bqn.js index 4684f939..fff892d2 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -491,14 +491,14 @@ let dojs = (x,w) => { } let update_state = (st,w)=>w; // Modified by Node version to handle •state -let makebqn = (e,fn) => st_old => { - let st={...st_old}; st.addrt=[]; - return (x,w) => { - let src = req1str(e,x,update_state(st,w)); - return fn(st.comps(st)(src)); - } +let makebqn = (e,fn) => st => (x,w) => { + let src = req1str(e,x,update_state(st,w)); + return fn(st.comps(st)(src)); } -let rebqn = dynsys(state => (x,w) => { +let copy_state = st_old => { let st={...st_old}; st.addrt=[]; return st; } +let dynsys_copy = fn => dynsys(st => fn(copy_state(st))); + +let rebqn = dynsys_copy(state => (x,w) => { let req = (r,s) => { if (!r) throw Error("•ReBQN: "+s) }; req(!has(w), "𝕨 not allowed"); req(x.ns, "𝕩 must be a namespace"); @@ -517,7 +517,6 @@ let rebqn = dynsys(state => (x,w) => { let k=val.m||0; pr[k].push(gl); rt[k].push(val); }); - state = {...state}; state.glyphs = pr.map(str); state.runtime = list([].concat(...rt)); compgen(state); @@ -550,7 +549,7 @@ let primitives = dynsys(state => { }); let sysvals = { - bqn:dynsys(makebqn("•BQN",r=>run(...r))), rebqn, primitives, js:dojs, + bqn:dynsys_copy(makebqn("•BQN",r=>run(...r))), rebqn, primitives, js:dojs, type, glyph, decompose, fmt:fmt1, repr, unixtime, listkeys, listsys: dynsys(_ => list(Object.keys(sysvals).sort().map(str))), math: obj2ns(Math,("LN10 LN2 LOG10E LOG2E 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) |
