minimal-lisp
Advanced tools
+1
| module.exports = require('./miniMAL-node.js'); |
| // miniMAL: https://github.com/kanaka/miniMAL | ||
| // Paste following code to the JS console | ||
| // Example: m.eval(["+", 2, 3]) | ||
| m=new (function(r){function n(n,t,i){if(i){t=Object.create(t);for(var u=0;n.length>u;u++){if("&"==n[u]){t[n[u+1]]=Array.prototype.slice.call(i,u);break}t[n[u]]=i[u]}return t}return Array.isArray(n)?n.map(function(r){return e(r,t)}):"string"==typeof n?n in t?t[n]:r.throw(n+" not found"):n}function t(r,n){for(;Array.isArray(r)&&"string"==typeof r[0]&&r[0]in n&&n[r[0]].ast&&n[r[0]].ast[3];)r=n[r[0]].apply(n[r[0]],r.slice(1));return r}function e(r,i){for(;;){if(!Array.isArray(r))return n(r,i);if(r=t(r,i),!Array.isArray(r))return r;if("def"==r[0])return i[r[1]]=e(r[2],i);if("~"==r[0]){var u=e(r[1],i);return u.ast.push(1),u}if("let"==r[0]){i=Object.create(i);for(var f in r[1])f%2&&(i[r[1][f-1]]=e(r[1][f],i));r=r[2]}else{if("`"==r[0])return r[1];if(".-"==r[0]){var a=n(r.slice(1),i),c=a[0][a[1]];return 2 in a?a[0][a[1]]=a[2]:c}if("."==r[0]){var a=n(r.slice(1),i),c=a[0][a[1]];return c.apply(a[0],a.slice(2))}if("try"==r[0])try{return e(r[1],i)}catch(s){return e(r[2][2],n([r[2][1]],i,[s]))}else if("do"==r[0]){var a=n(r.slice(1,r.length-1),i);r=r[r.length-1]}else if("if"==r[0])r=e(r[1],i)?r[2]:r[3];else{if("fn"==r[0]){var u=function(){return e(r[2],n(r[1],i,arguments))};return u.ast=[r[2],i,r[1]],u}var a=n(r,i),u=a[0];if(!u.ast)return u.apply(u,a.slice(1));r=u.ast[0],i=n(u.ast[2],u.ast[1],a.slice(1))}}}}return r=Object.create(r||this),r.js=eval,r.eval=function(n){return e(n,r)},r["="]=function(r,n){return r===n},r["<"]=function(r,n){return n>r},r["+"]=function(r,n){return r+n},r["-"]=function(r,n){return r-n},r["*"]=function(r,n){return r*n},r["/"]=function(r,n){return r/n},r.isa=function(r,n){return r instanceof n},r.new=function(r){return new(r.bind.apply(r,arguments))},r.del=function(r,n){return delete r[n]},r.throw=function(r){throw r},r.rep=function(n){return JSON.stringify(e(JSON.parse(n),r))},r})() |
+30
-30
@@ -17,5 +17,5 @@ ["do", | ||
| ["def", "pr-list*", ["fn", ["a", "pr", "sep"], | ||
| ["def", "pr-list*", ["fn", ["a", "b", "c"], | ||
| [".", ["map", ["fn", ["x"], | ||
| ["if", "pr", | ||
| ["if", "c", | ||
| [".", "JSON", ["`", "stringify"], "x"], | ||
@@ -26,13 +26,13 @@ ["if", ["string?", "x"], | ||
| "a"], | ||
| ["`", "join"], "sep"]]], | ||
| ["`", "join"], "b"]]], | ||
| ["def", "pr-str", ["fn", ["&", "a"], | ||
| ["pr-list*", "a", true, ["`", " "]]]], | ||
| ["pr-list*", "a", ["`", " "], true]]], | ||
| ["def", "str", ["fn", ["&", "a"], | ||
| ["pr-list*", "a", false, ["`", ""]]]], | ||
| ["pr-list*", "a", ["`", ""], false]]], | ||
| ["def", "prn", ["fn", ["&", "a"], | ||
| ["do", [".", "console", ["`", "log"], | ||
| ["pr-list*", "a", true, ["`", " "]]], null]]], | ||
| ["pr-list*", "a", ["`", " "], true]], null]]], | ||
| ["def", "println", ["fn", ["&", "a"], | ||
| ["do", [".", "console", ["`", "log"], | ||
| ["pr-list*", "a", false, ["`", " "]]], null]]], | ||
| ["pr-list*", "a", ["`", " "], false]], null]]], | ||
@@ -42,3 +42,5 @@ ["def", ">=", ["fn", ["a", "b"], | ||
| ["def", ">", ["fn", ["a", "b"], | ||
| ["if", [">=", "a", "b"], ["if", ["=", "a", "b"], false, true], false]]], | ||
| ["if", [">=", "a", "b"], | ||
| ["if", ["=", "a", "b"], false, true], | ||
| false]]], | ||
| ["def", "<=", ["fn", ["a", "b"], | ||
@@ -51,5 +53,8 @@ ["if", [">", "a", "b"], false, true]]], | ||
| ["def", "set", ["fn", ["a", "b", "c"], [".-", "a", "b", "c"]]], | ||
| ["def", "contains?", ["fn", ["a", "b"], [".", "a", ["`", "hasOwnProperty"], "b"]]], | ||
| ["def", "keys", ["fn", ["a"], [".", "Object", ["`", "keys"], "a"]]], | ||
| ["def", "vals", ["fn", ["a"], ["map",["fn",["k"],["get","a","k"]],["keys", "a"]]]], | ||
| ["def", "contains?", ["fn", ["a", "b"], | ||
| [".", "a", ["`", "hasOwnProperty"], "b"]]], | ||
| ["def", "keys", ["fn", ["a"], | ||
| [".", "Object", ["`", "keys"], "a"]]], | ||
| ["def", "vals", ["fn", ["a"], | ||
| ["map",["fn", ["k"], ["get", "a", "k"]], ["keys", "a"]]]], | ||
@@ -64,20 +69,24 @@ ["def", "cons", ["fn", ["a", "b"], | ||
| ["def", "first", ["fn", ["a"], | ||
| ["if", [">", ["count", "a"], 0], | ||
| ["if", [">", [".-", "a", ["`", "length"]], 0], | ||
| ["nth", "a", 0], | ||
| null]]], | ||
| ["def", "last", ["fn", ["a"], ["nth", "a", ["-", ["count", "a"], 1]]]], | ||
| ["def", "last", ["fn", ["a"], | ||
| ["nth", "a", ["-", [".-", "a", ["`", "length"]], 1]]]], | ||
| ["def", "count", ["fn", ["a"], | ||
| [".-", "a", ["`", "length"]]]], | ||
| ["def", "empty?", ["fn", ["a"], | ||
| ["if", ["list?", "a"], ["if", ["=", 0, ["count", "a"]], true, false], | ||
| ["=", "a", null]]]], | ||
| ["def", "slice", ["fn", ["a", "start", "&", "endl"], | ||
| ["let", ["end", ["if", [">", ["count", "endl"], 0], | ||
| ["get", "endl", 0], | ||
| ["count", "a"]]], | ||
| [".", "a", ["`", "slice"], "start", "end"]]]], | ||
| ["if", ["list?", "a"], | ||
| ["if", ["=", 0, [".-", "a", ["`", "length"]]], true, false], | ||
| ["=", "a", null]]]], | ||
| ["def", "slice", ["fn", ["a", "b", "&", "end"], | ||
| [".", "a", ["`", "slice"], | ||
| "b", | ||
| ["if", [">", ["count", "end"], 0], | ||
| ["get", "end", 0], | ||
| [".-", "a", ["`", "length"]]]]]], | ||
| ["def", "rest", ["fn", ["a"], ["slice", "a", 1]]], | ||
| ["def", "apply", ["fn", ["f", "&", "b"], | ||
| [".", "f", ["`", "apply"], "f", ["concat", ["slice", "b", 0, -1], ["last", "b"]]]]], | ||
| [".", "f", ["`", "apply"], "f", | ||
| ["concat", ["slice", "b", 0, -1], ["last", "b"]]]]], | ||
@@ -104,11 +113,2 @@ ["def", "and", ["~", ["fn", ["&", "xs"], | ||
| ["def", "cond", ["~", ["fn", ["&", "clauses"], | ||
| ["if", [">", ["count", "clauses"], 0], | ||
| ["list", ["`", "if"], ["first", "clauses"], | ||
| ["if", [">", ["count", "clauses"], 1], | ||
| ["nth", "clauses", 1], | ||
| ["throw", ["`", "cond requires an even number of forms"]]], | ||
| ["cons", ["`", "cond"], ["rest", ["rest", "clauses"]]]], | ||
| null]]]], | ||
| ["def", "classOf", ["fn", ["a"], | ||
@@ -115,0 +115,0 @@ [".", [".-", [".-", "Object", ["`", "prototype"]], ["`", "toString"]], |
+1
-1
@@ -1,1 +0,1 @@ | ||
| for(_='),KinI,["@","_"@^^`_5 I 4val$map#[2]R"==Qt=PifG)=>F(...E:EnFnDstrIgCJSON.B"\\n"Z[1]YtYX,i)W[0]VW,f=nVU.$ueunctiofac^elsee(Object.let))n(.#(]]t.length-1nY,"tR,tV.onkeyup]\\n["textareaEtFtV,f.ast{ n=tG(" t Istanceof Arraycreat.slic< rows=9 cols=60>return QtV)"DV1)U[n[1;fn tW{for(;;){G(!(tW; defi[t[1=W; {i=i);for( e4X)e%2&&(i[X[e-1=X[e],i;P}{ `X; .-24n?nV[n[1=nR:f} .f.apply(nV,n2} do1,)W;Pt[]} GPXW?:t[3];{ fn{ f=EfF,X,i,f;=[,i,t[1,f}U;G(!)fEn1;PV,i=R,Y,n1}}}}}var e=ft,eW{i?(e=eKt.som(n,fF"&Qn?e[t[f+1=if):(e[n]=i[f],!1,e):?te:"CQtypeof t?t4e?e[t]:null[t]:t};A=assigthisK{js:e$,e$:AK"====<<++--**//nY,#DYnV)}Kb.InerHTML=\'["^m5mIi"@+_m5MAL"def_fn^n"]@G_n^*_n^-_n",1],1#_`",[7,8,9._Math5random"</></>\',Pb.children=((FX=tV.split(Z)P>t?BCGy(BparstKA:"").joiZ()';g=/[-U-ZB-GP-R#$45^_@IK]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='),~,["|","z"|ZZ`zYinX X WvalV;t=U=nR[tQifP)=>K(...I:InKnGmapF(tE.FE=>DstrXgCJSON.B,i)5[0]45,fR4("\\n".VuefacZelse]]Object.let))[2]t.length-1[1]n,",t4.onkeyup]\\n["textareafunctionItKnE4,f.ast{ n=eEP(" t Xstanceof Arraycreate(.slice(< rows=9 cols=60>return "==t4)"G41)[n]; nE5{for(;;){P(!(eE5; defiQ]RE5; {i=i);for( eWt)e%2&&(iQ[e-1RE[e],iUt}{ `t; .-2Wn?n4[n]R:f} .f.apply(n4,n2} do1,)5Ut[]} PtRE5?t:t[3];{ fn{ f=If){nE,eE,i,f};=Q,i,t],f};P(!)fIn1U4,i=e(,,n1}}}}}var e=E,e5{i?(e=e~t.some((n,fK"&"=R?eQ[f+1=if):(e[n]=i[f],!1,e):?t.F(e:"C"==typeof t?tWe?eQ]:nullQ]:t};A=assign(this~{js:eV,eV:A~"====<<++--**//n,FGDn4E}~b.XnerHTML=\'["ZmYmXi"|+zmYMAL"defzfnZn"]|PznZ*znZ-zn",1],1Fz`",[7,8,9.zMathYrandom"</></>\',t=b.children=((Kt=t4.split)Dt?BCPy(n(BparseE~A:"").joX()';g=/[^ -36-AHJL-OST[-y{}]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
+1
-1
@@ -1,1 +0,1 @@ | ||
| for(_='return Z;ZY]=X))We(V.slicVUU1WT,rR(nQ[1]PR)KnPIVIKH)=>G(...FFtGEinD D C"==B.as@,i9if8Dstanceof 7 7Array6!Q6WZ5let4{4 t=n[0]B)iQU1t[0]K,e=strDgJSON.n=[te@t[2]Objectfor(,ttypeof I,"throwelse:FnG " parsVn.length-1nfunction8(".creatV)P]YmDiMAL=Q){ tQ){;n6&&D t&&t[]._M;)t[]FnTYn} eQK{;;){8(5iQK;8(tQK,5n;defZr[IXVK;~HYt._M=1}4{r=r);4 tCI)t%2&&(r[I-1]XVI]K);}{`ZI;.-2Ct?PXt:e}.e.apply(U2W}trytry{ZH}catch(t){ZV9([P]R,]W} do,)K;n[]} 8H?:n[3];{fnEV9(IRWYt@t=[R,I]}iQ;8(!)ZeFtT;[0]R=i(,PT}}}}}4 i=(t9K{Zr?(i=i).somVQ,eG"&Bn?i[e+1]XrUe):(i[nXr[e],!1W9):t6?t.map(FnGV9W:"Bt?tCi?i]:n.(t+" not found"):t}Y@sign(n||this),{js:eval,eval:EV,n),"====<<++--**//I9sa 7Iype ,new new(.bDdFnW,del de4e [I], { }Read )Rep:E8y(V),nW})}';g=/[^ -3:-?AJL-OS[-~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='return Z;ZY]=X))We(V.slicVUU1WT,rR(nQ[1]PR)KnPIVIKHinG G F"==E.asD,iCifBGstanceof @ @Array9!Q9WZ8let7{7 t=6n[0]5E5)446iQU1t[0]K,e=strGgJSON.n=[teDt[2]nt){ZVObjectfor(,ttypeof I,")=>throwelse(... : n"5parsVn.length-1B("function.creatV)P]YmGiMAL=Q){ tQ){;n9&&5G t&&t[5]._M;)t[5] nTYn} eQK{;;){B(8iQK;B(tQK,8n;def4Zr[IXVK;~HYt._M=1}74{r=r);7 tFI)t%2&&(r[I-1]XVI]K);}{`4ZI;.-2Ft?PXt:e}.e.apply(U2W}try4try{ZH}catch(C([P]R,]W} do,)K;n[]} B4H?:n[3];{fn C(IRW}YtDt=[R,I]}6iQ;B(!)Ze tT;[0]R=i(,PT}}}}}7 i=(tCK{Zr?(i=i).somVQ,e"&En?i[e+1]XrUe):(i[nXr[e],!1WC):t9?t.map( nV5CW:"Et?tFi?i]:n.(t+" not found"):t}YDsign(n||this),{js:eval,eval: tV,n),"====<<++--**//ICsa5@Iype5,newnew(5.bGd nW,delde7e 5[I],{ 5}Read5)Rep: tBy(V),nW})}';g=/[^ -3:-?AJL-OS[-~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
+1
-1
@@ -1,1 +0,1 @@ | ||
| for(_='re||turn z;zZ]=Y,iXinW))V.slice(UU1VT W RvalQ"==P[0]LifKt(I,rHH)G[1]EnED(nCWstanceof B BArray@!C@Vz9let7{7 e=6nL5P5)446$$iCU1#),eLHt=strWgslurpJSON.n=[e)=>[2]for(,etypeof Object.D,"throwelse(...:n"5n.length-1 et.astnfunctionparse(K("c|ate(#)E]Zmodule.exports=C){ eC){;n@&&5W e&&e[5]._M;)e[5]nTZn} tCG{;;){K(9iCG;K(eCH9n;def4zr[DYIG;~$tCEGZe._M=1}74{r=r);7 eRD)e%2&&(r[D-1]YtCE]G);}{`4zD;.-2Re?EYe:t}.t.apply(U2V}try4try{ztCEG}catch(e){zIX([E]H,]V} do#, r);n[ ]} K4tCEG?:n[3];{fn$IXCEHVZe.ast=[H,D]}6iC;K(!)zteT;LH=i(,ET}}}}}7 i=(eXG{zr?(i=i).some(C,t"&Pn?i[t+1]YrUt):(i[nYr[t],!1)i):e@?e.map(nI5XV:"Pe?eRi?i]:n.(e+" not found"):e}Zassign(n{js:eQQ:I,n"====<<++--**//DXsa5BD,type5,newnew(5.bWdn)delde7e 5[D],{ 5}Head5|qui|("fs").|adFileSync(5,"utf-8"load:n.eQ(n.(V|p:Ky(InV})}';g=/[^ -"%-38:-?AFJM-OS[-y{}~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_=']=|,izinZt(Y))X.slice(WW1XV Z UvalT"==R[0]QifPreL,rKK)I[1]HnHG(nEZstanceof D DArrayCLturn B!ECXB@let9{9 e=7nQ6R6)55744iEW1$),#eQK#t=strZgslurpJSON.n=[e)=>[2]ne){BYfor(,etypeof Object.G,"throwelse(...:n"6 :en.length-1t.astparse(P("functioncLate($)H];Bmodule.exports=E){ eE){;nC&&6Z e&&e[6]._M;)e[6]nV;Bn} tEI{;;){P(@iEI;P(eEK#@n;def5Br[G|YI;~4tEHI;Be._M=1}95{r=r);9 eUG)e%2&&(r[G-1]|tEH]I);}{`5BG;.-2Ue?H|e:t}.t.apply(W2X}try5try{BtEHI}catch(z([H]K,]X} do$,#r);n[]} P5tEHI?:n[3];{fn4zEHKX};Be.ast=[K,G]}7iE;P(!)BteV;QK=i(,HV}}}}}9 i=(ezI{Br?(i=i).some(E,t"&Rn?i[t+1]|rWt):(i[n|r[t],!1)#i):eC?e.map(nY6zX:"Re?eUi?i]:n.(e+" not found"):e};Bassign(n#{js:eTTY,n#"= ===< <+ +- -* */ /Gzsa6DG,type6,newnew(6.bZdn)#delde9e 6[G],{ 6}Kead6#LquiL("fs").LadFileSync(6,"utf-8"#loadn.eT(n.(X#LpPy(Y#nX})}';g=/[^ -"%-38:-?AFJM-OS[-y{}~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
+2
-1
| { | ||
| "name": "minimal-lisp", | ||
| "version": "0.0.8", | ||
| "version": "0.0.9", | ||
| "description": "miniMAL: a Clojure-inspired Lisp in < 1024 bytes of JavaScript", | ||
@@ -17,2 +17,3 @@ "keywords": ["Clojure", "clojure", "Lisp", "lisp", "mal", "make-a-lisp", "1K", "1024", "golf", "JS1K", "js1k", "JSON", "json", "tail-call", "TCO", "macros", "interop", "lexical", "functional"], | ||
| "miniMAL-node.js", | ||
| "index.js", | ||
| "miniMAL-min.js", | ||
@@ -19,0 +20,0 @@ "miniMAL-js1k.js", |
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -4,0 +4,0 @@ |
+1
-1
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -4,0 +4,0 @@ |
+1
-1
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -4,0 +4,0 @@ |
@@ -1,1 +0,1 @@ | ||
| for(_='(iDnDC),Bre[t]"==if()=>(...[0]:nn"JSON..map(i)stringt in ilet ))Object.unction[1]n," ;".slice(C[2],e)turn instanceof Arraycate(f C{!D tDdef e[i]=let{e=e);for()t%2&&(e[i[t-1]]=C); }"do tD1)[i.length-2]if C?:C[3]fnr,tD,e,r;{n=tD,r=n; r.apply(r,n1}}t=f(t,i{ e?D=iBt.some((n,r"&n?i[t[r+1]]=er):D[n]=e[r],!1,i):t?ttn(t,i:"typeof t??i:null:t};A=assign(globalB{"==== << ++ -- ** //n,list,mapt=>n(t}Bqui("pl").start({eval:tt[3](!1,ify(n(parse(tBABwriter,terminal:!1})';g=/[-B-D]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='(iCnCB),re[t]"==if()=>(...[0]:nn"JSON..map(stringt in ilet ))Object.[1]n,";" .slice(functionB[2],e) instanceof Arrayi)cate(turn B{!CtC defe[i]= let{e=e);for()t%2&&(e[i[t-1]]=B);}"dotC1)[i.length-2] ifB?:B[3] fnr){,tC,e,r};{n=tC,r=n;r.apply(r,n1}}t=(t,i{e?C=it.some((n,r"&n?i[t[r+1]]=er):C[n]=e[r],!1,i):t?ttn(t,i:"typeof t??i:null:t};A=assign(global{"====<<++--**//n,list,mapt=>n(t}qui("pl").start({eval:tt[3](!1,ify(n(parse(tAwriter,terminal:!1})';g=/[-BC]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| function n(i,e){if(!(i instanceof Array))return t(i,e);if("def"==i[0])return e[i[1]]=n(i[2],e);if("let"==i[0]){e=Object.create(e);for(let t in i[1])t%2&&(e[i[1][t-1]]=n(i[1][t],e));return n(i[2],e)}if("do"==i[0])return t(i.slice(1),e)[i.length-2];if("if"==i[0])return n(i[1],e)?n(i[2],e):n(i[3],e);if("fn"==i[0])return(...r)=>n(i[2],t(i[1],e,r));{let n=t(i,e),r=n[0];return r.apply(r,n.slice(1))}}let t=function(t,i,e){return e?(i=Object.create(i),t.some((n,r)=>"&"==n?i[t[r+1]]=e.slice(r):(i[n]=e[r],!1)),i):t instanceof Array?t.map((...t)=>n(t[0],i)):"string"==typeof t?t in i?i[t]:null[t]:t};E=Object.assign(Object.create(global),{"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],list:(...n)=>n,map:(...n)=>n[1].map(t=>n[0](t))}),require("repl").start({eval:(...t)=>t[3](!1,JSON.stringify(n(JSON.parse(t[0]),E))),writer:(...n)=>n[0],terminal:!1}) | ||
| function n(i,e){if(!(i instanceof Array))return t(i,e);if("def"==i[0])return e[i[1]]=n(i[2],e);if("let"==i[0]){e=Object.create(e);for(let t in i[1])t%2&&(e[i[1][t-1]]=n(i[1][t],e));return n(i[2],e)}if("do"==i[0])return t(i.slice(1),e)[i.length-2];if("if"==i[0])return n(i[1],e)?n(i[2],e):n(i[3],e);if("fn"==i[0])return function(...r){return n(i[2],t(i[1],e,r))};{let n=t(i,e),r=n[0];return r.apply(r,n.slice(1))}}let t=function(t,i,e){return e?(i=Object.create(i),t.some((n,r)=>"&"==n?i[t[r+1]]=e.slice(r):(i[n]=e[r],!1)),i):t instanceof Array?t.map((...t)=>n(t[0],i)):"string"==typeof t?t in i?i[t]:null[t]:t};E=Object.assign(Object.create(global),{"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],list:(...n)=>n,map:(...n)=>n[1].map(t=>n[0](t))}),require("repl").start({eval:(...t)=>t[3](!1,JSON.stringify(n(JSON.parse(t[0]),E))),writer:(...n)=>n[0],terminal:!1}) |
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -49,3 +49,5 @@ | ||
| } else if (ast[0] == "fn") { // define new function (lambda) | ||
| return (...a) => EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| return function(...a) { | ||
| return EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| } | ||
| } else { // invoke list form | ||
@@ -52,0 +54,0 @@ let el = eval_ast_or_bind(ast, env), |
@@ -1,1 +0,1 @@ | ||
| for(_='st4(eZ=nZY[t]X"==W)=>V(...U[0]T:UnVnT"),reJSON..map(;e=e[let {n=tZ4ringt in e))Object.unction[2]if(e.length-1[1]n,"parse( ]}else ",i)f.a4 in4anceof Array.slice(turn WeT)cate(f nZ{for(;;){!ZtZ;"defi[e]Y;"let{i=i);for()t%2&&(i[e[t-1]]YX)2do1,)ifeY?e:e[3];else{"fn{f=UfVnZ,tZ,i,f;=[e,i,e],f},f=nT;!)fUn1;e=T,i=t(,,n1}}}}t=f(t,e{i?Z=et.some((n,fV"&Wn?e[t[f+1]]=if):Z[n]=i[f],!1,e):t?tUtVn(tT,e:"Wtypeof t??eX:nullX:t};A=assign(global{"====<<++--**//n,li4n,mapnt=>nT(t,ad nTARGS:process.argv3)}qui("pl").4art({eval:UtVt[3](!1,ify(n( tTAwriter,terminal:!1})';g=/[-T-Z4]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='st4(eZ=nZY[t]X"==W)=>V(...U[0]T:UnVnT"),reJSON..map(;e=e[let {n=tZ4ringt in e))Object.[2]if(e.length-1[1]n,"parse(]}else " ,i)functionr.a4 in4anceof Array.slice(WeT)cate(turn nZ{for(;;){!ZtZ;"defi[e]Y;"let{i=i);for()t%2&&(i[e[t-1]]YX)2 do1,) ifeY?e:e[3];else{"fn{r=Ur){nZ,tZ,i,r};=[e,i,e],r},r=nT;!)rUn1;e=T,i=t(,,n1}}}}t=(t,e{i?Z=et.some((n,rV"&Wn?e[t[r+1]]=ir):Z[n]=i[r],!1,e):t?tUtVn(tT,e:"Wtypeof t??eX:nullX:t};A=assign(global{"====<<++--**//n,li4n,mapnt=>nT(t,adnTARGS:process.argv3)}qui("pl").4art({eval:UtVt[3](!1,ify(n(tTAwriter,terminal:!1})';g=/[-T-Z4]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| function n(e,i){for(;;){if(!(e instanceof Array))return t(e,i);if("def"==e[0])return i[e[1]]=n(e[2],i);if("let"==e[0]){i=Object.create(i);for(let t in e[1])t%2&&(i[e[1][t-1]]=n(e[1][t],i));e=e[2]}else if("do"==e[0]){let n=t(e.slice(1,e.length-1),i);e=e[e.length-1]}else if("if"==e[0])e=n(e[1],i)?e[2]:e[3];else{if("fn"==e[0]){let f=(...f)=>n(e[2],t(e[1],i,f));return f.ast=[e[2],i,e[1]],f}{let n=t(e,i),f=n[0];if(!f.ast)return f(...n.slice(1));e=f.ast[0],i=t(f.ast[2],f.ast[1],n.slice(1))}}}}let t=function(t,e,i){return i?(e=Object.create(e),t.some((n,f)=>"&"==n?e[t[f+1]]=i.slice(f):(e[n]=i[f],!1)),e):t instanceof Array?t.map((...t)=>n(t[0],e)):"string"==typeof t?t in e?e[t]:null[t]:t};E=Object.assign(Object.create(global),{"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],list:(...n)=>n,map:(...n)=>n[1].map(t=>n[0](t)),read:(...n)=>JSON.parse(n[0]),ARGS:process.argv.slice(3)}),require("repl").start({eval:(...t)=>t[3](!1,JSON.stringify(n(JSON.parse(t[0]),E))),writer:(...n)=>n[0],terminal:!1}) | ||
| function n(e,i){for(;;){if(!(e instanceof Array))return t(e,i);if("def"==e[0])return i[e[1]]=n(e[2],i);if("let"==e[0]){i=Object.create(i);for(let t in e[1])t%2&&(i[e[1][t-1]]=n(e[1][t],i));e=e[2]}else if("do"==e[0]){let n=t(e.slice(1,e.length-1),i);e=e[e.length-1]}else if("if"==e[0])e=n(e[1],i)?e[2]:e[3];else{if("fn"==e[0]){let r=function(...r){return n(e[2],t(e[1],i,r))};return r.ast=[e[2],i,e[1]],r}{let n=t(e,i),r=n[0];if(!r.ast)return r(...n.slice(1));e=r.ast[0],i=t(r.ast[2],r.ast[1],n.slice(1))}}}}let t=function(t,e,i){return i?(e=Object.create(e),t.some((n,r)=>"&"==n?e[t[r+1]]=i.slice(r):(e[n]=i[r],!1)),e):t instanceof Array?t.map((...t)=>n(t[0],e)):"string"==typeof t?t in e?e[t]:null[t]:t};E=Object.assign(Object.create(global),{"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],list:(...n)=>n,map:(...n)=>n[1].map(t=>n[0](t)),read:(...n)=>JSON.parse(n[0]),ARGS:process.argv.slice(3)}),require("repl").start({eval:(...t)=>t[3](!1,JSON.stringify(n(JSON.parse(t[0]),E))),writer:(...n)=>n[0],terminal:!1}) |
+4
-2
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -47,3 +47,5 @@ | ||
| } else if (ast[0] == "fn") { // define new function (lambda) | ||
| let f = (...a) => EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| let f = function(...a) { | ||
| return EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| } | ||
| f.ast = [ast[2], env, ast[1]] // f.ast compresses more than f.data | ||
@@ -50,0 +52,0 @@ return f |
@@ -1,1 +0,1 @@ | ||
| for(_='[0]~n~Z(tY=nYX;t=W[e]V"==Uif(T)=>I(...H:HnIEEZD"DCreBslurpJSON.))e(let {n=tstringe in tevalelseObject.unction),Bquir"t.length-1[1]n,"[2],i)T"r.ast HeIn(e~, instanceof Arraypars.slicprocess.argvcBatBturn Ut~)f nY{for(;;){T!Yt;defi[t]X;let{i=i);for()e%2&&(i[t[e-1]]XV)Wt}{`t;do1,)Wt[]} iftX?t:t[3];{fn{r=HrInY,t,i,r; =[t,i,t],r},r=Z;T! )rHn1W ~,i= , ,n1}}}}}e=f(e,t{i?Y=te.som(n,rI"&Un?t[e[r+1]]=ir):Y[n]=i[r],!1)t):e?e.map(t:"Utypeof e??tV:nullV:e};A=assign(global{:A"=C===<C<+C+-C-*C*/C/n,BadEZEfs").BadFileSync(Z,"utf-8"loadEA.(A.(ZARGS:3)}?A.load():Bpl").start({:HeIe[3](!1,ify(n(e~AwriterD,terminal:!1})';g=/[^ -AFGJ-S[-}]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='[0]~n~Z(tY=nYX;t=W[e]V"==Uif(T)=>I(...H:HnIEEZD"DCreBslurpJSON.))e(let {n=tstringe in tevalelseObject.),Bquir"t.length-1[1]n,"[2],r)T"functioni.ast HeIn(e~, instanceof Arraypars.slicprocess.argvcBatUt~)Bturn nY{for(;;){T!Yt;defr[t]X;let{r=r);for()e%2&&(r[t[e-1]]XV)Wt}{`t;do1,)Wt[]} iftX?t:t[3];{fn{i=Hi){nY,t,r,i}; =[t,r,t],i},i=Z;T! )iHn1W ~,r= , ,n1}}}}}e=(e,t{r?Y=te.som(n,iI"&Un?t[e[i+1]]=ri):Y[n]=r[i],!1)t):e?e.map(t:"Utypeof e??tV:nullV:e};A=assign(global{:A"=C===<C<+C+-C-*C*/C/n,BadEZEfs").BadFileSync(Z,"utf-8"loadEA.(A.(ZARGS:3)}?A.load():Bpl").start({:HeIe[3](!1,ify(n(e~AwriterD,terminal:!1})';g=/[^ -AFGJ-S[-}]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| function n(t,i){for(;;){if(!(t instanceof Array))return e(t,i);if("def"==t[0])return i[t[1]]=n(t[2],i);if("let"==t[0]){i=Object.create(i);for(let e in t[1])e%2&&(i[t[1][e-1]]=n(t[1][e],i));t=t[2]}else{if("`"==t[0])return t[1];if("do"==t[0]){let n=e(t.slice(1,t.length-1),i);t=t[t.length-1]}else if("if"==t[0])t=n(t[1],i)?t[2]:t[3];else{if("fn"==t[0]){let r=(...r)=>n(t[2],e(t[1],i,r));return r.ast=[t[2],i,t[1]],r}{let n=e(t,i),r=n[0];if(!r.ast)return r(...n.slice(1));t=r.ast[0],i=e(r.ast[2],r.ast[1],n.slice(1))}}}}}let e=function(e,t,i){return i?(t=Object.create(t),e.some((n,r)=>"&"==n?t[e[r+1]]=i.slice(r):(t[n]=i[r],!1)),t):e instanceof Array?e.map((...e)=>n(e[0],t)):"string"==typeof e?e in t?t[e]:null[e]:e};E=Object.assign(Object.create(global),{eval:(...e)=>n(e[0],E),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],read:(...n)=>JSON.parse(n[0]),slurp:(...n)=>require("fs").readFileSync(n[0],"utf-8"),load:(...n)=>E.eval(JSON.parse(E.slurp(n[0]))),ARGS:process.argv.slice(3)}),process.argv[2]?E.load(process.argv[2]):require("repl").start({eval:(...e)=>e[3](!1,JSON.stringify(n(JSON.parse(e[0]),E))),writer:(...n)=>n[0],terminal:!1}) | ||
| function n(t,r){for(;;){if(!(t instanceof Array))return e(t,r);if("def"==t[0])return r[t[1]]=n(t[2],r);if("let"==t[0]){r=Object.create(r);for(let e in t[1])e%2&&(r[t[1][e-1]]=n(t[1][e],r));t=t[2]}else{if("`"==t[0])return t[1];if("do"==t[0]){let n=e(t.slice(1,t.length-1),r);t=t[t.length-1]}else if("if"==t[0])t=n(t[1],r)?t[2]:t[3];else{if("fn"==t[0]){let i=function(...i){return n(t[2],e(t[1],r,i))};return i.ast=[t[2],r,t[1]],i}{let n=e(t,r),i=n[0];if(!i.ast)return i(...n.slice(1));t=i.ast[0],r=e(i.ast[2],i.ast[1],n.slice(1))}}}}}let e=function(e,t,r){return r?(t=Object.create(t),e.some((n,i)=>"&"==n?t[e[i+1]]=r.slice(i):(t[n]=r[i],!1)),t):e instanceof Array?e.map((...e)=>n(e[0],t)):"string"==typeof e?e in t?t[e]:null[e]:e};E=Object.assign(Object.create(global),{eval:(...e)=>n(e[0],E),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],read:(...n)=>JSON.parse(n[0]),slurp:(...n)=>require("fs").readFileSync(n[0],"utf-8"),load:(...n)=>E.eval(JSON.parse(E.slurp(n[0]))),ARGS:process.argv.slice(3)}),process.argv[2]?E.load(process.argv[2]):require("repl").start({eval:(...e)=>e[3](!1,JSON.stringify(n(JSON.parse(e[0]),E))),writer:(...n)=>n[0],terminal:!1}) |
+4
-2
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -49,3 +49,5 @@ | ||
| } else if (ast[0] == "fn") { // define new function (lambda) | ||
| let f = (...a) => EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| let f = function(...a) { | ||
| return EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| } | ||
| f.ast = [ast[2], env, ast[1]] // f.ast compresses more than f.data | ||
@@ -52,0 +54,0 @@ return f |
@@ -1,1 +0,1 @@ | ||
| for(_=']=Z[1]YiYX;i=W"==Vif(U,tT[0]QeQP)=>M(...L:LeMKKPI"IHreE),DT)CC,r=PBslurpJSON.[n]:nstringevalelse in e(Object.unctionEquir"let [2](i))i.length-1eY,":LnMr.ast{e=nU" instanceof Arrayparsprocess.argvcEat.slicEturn ViQ)1)B[eY];f eC{for(;;){U!nC; deft[XZeC; let{t=t);for(nX)n%2&&(t[X[n-1]ZeY[n]TWi}{ `X; .-2e?P[eYZe:r} .r.apply(P,e2} do1,)CWi[]} ifi=eYC?i:i[3];{ fn{r=LrMe,nYT,r;=[iT,X],r}B;U!)rLe1WQT=n(,Y,e1}}}}}n=f(n,iC{t?=iDn.som(e,rM"&Ve?i[n[r+1]Ztr):[eZt[r],!1,i):n?n.map(LnMnQ,i:"Vtypeof n?ni?iull};A=assign(globalD{js:,nQ,AD"=H===<H<+H+-H-*H*/H/eY,EadKPDKfs").EadFileSync(P,"utf-8"DloadKA.(A.(PDARGS:3)}D?A.load():Epl").start({n[3](!1,ify(nQDADwriterITerminal:!1})';g=/[^ -AFGJNORS[-}]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_=']=~[1]ZtZY;t=X"==Wif(V[0]UeUT)=>M(...L:LeMKKTI"IHreE),D,i)CC,r=TBslurpJSON.[n]:nstringevalelse in e(Object.Equir"let [2](t))t.length-1eZ,"function:LnMr.ast{e=nV" instanceof Arrayparsprocess.argvcEat.slicEturn WtU)1)B[eZ]; eC{for(;;){V!nC; defi[Y~eC; let{i=i);for(nY)n%2&&(i[Y[n-1]~eZ[n],iXt}{ `Y; .-2e?T[eZ~e:r} .r.apply(T,e2} do1,)CXt[]} ift=eZC?t:t[3];{ fn{r=Lr){e,nZ,i,r};=[t,i,Y],r}B;V!)rLe1XU,i=n(,Z,e1}}}}}n=(n,tC{i?=tDn.som(e,rM"&We?t[n[r+1]~ir):[e~i[r],!1,t):n?n.map(LnMnU,t:"Wtypeof n?nt?tull};A=assign(globalD{js:,nU,AD"=H===<H<+H+-H-*H*/H/eZ,EadKTDKfs").EadFileSync(T,"utf-8"DloadKA.(A.(TDARGS:3)}D?A.load():Epl").start({n[3](!1,ify(nUDADwriterI,terminal:!1})';g=/[^ -AFGJN-S[-}]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| function e(i,t){for(;;){if(!(i instanceof Array))return n(i,t);if("def"==i[0])return t[i[1]]=e(i[2],t);if("let"==i[0]){t=Object.create(t);for(let n in i[1])n%2&&(t[i[1][n-1]]=e(i[1][n],t));i=i[2]}else{if("`"==i[0])return i[1];if(".-"==i[0]){let e=n(i.slice(1),t),r=e[0][e[1]];return 2 in e?e[0][e[1]]=e[2]:r}if("."==i[0]){let e=n(i.slice(1),t),r=e[0][e[1]];return r.apply(e[0],e.slice(2))}if("do"==i[0]){let e=n(i.slice(1,i.length-1),t);i=i[i.length-1]}else if("if"==i[0])i=e(i[1],t)?i[2]:i[3];else{if("fn"==i[0]){let r=(...r)=>e(i[2],n(i[1],t,r));return r.ast=[i[2],t,i[1]],r}{let e=n(i,t),r=e[0];if(!r.ast)return r(...e.slice(1));i=r.ast[0],t=n(r.ast[2],r.ast[1],e.slice(1))}}}}}let n=function(n,i,t){return t?(i=Object.create(i),n.some((e,r)=>"&"==e?i[n[r+1]]=t.slice(r):(i[e]=t[r],!1)),i):n instanceof Array?n.map((...n)=>e(n[0],i)):"string"==typeof n?n in i?i[n]:null[n]:n};E=Object.assign(Object.create(global),{js:eval,eval:(...n)=>e(n[0],E),"=":(...e)=>e[0]===e[1],"<":(...e)=>e[0]<e[1],"+":(...e)=>e[0]+e[1],"-":(...e)=>e[0]-e[1],"*":(...e)=>e[0]*e[1],"/":(...e)=>e[0]/e[1],read:(...e)=>JSON.parse(e[0]),slurp:(...e)=>require("fs").readFileSync(e[0],"utf-8"),load:(...e)=>E.eval(JSON.parse(E.slurp(e[0]))),ARGS:process.argv.slice(3)}),process.argv[2]?E.load(process.argv[2]):require("repl").start({eval:(...n)=>n[3](!1,JSON.stringify(e(JSON.parse(n[0]),E))),writer:(...e)=>e[0],terminal:!1}) | ||
| function e(t,i){for(;;){if(!(t instanceof Array))return n(t,i);if("def"==t[0])return i[t[1]]=e(t[2],i);if("let"==t[0]){i=Object.create(i);for(let n in t[1])n%2&&(i[t[1][n-1]]=e(t[1][n],i));t=t[2]}else{if("`"==t[0])return t[1];if(".-"==t[0]){let e=n(t.slice(1),i),r=e[0][e[1]];return 2 in e?e[0][e[1]]=e[2]:r}if("."==t[0]){let e=n(t.slice(1),i),r=e[0][e[1]];return r.apply(e[0],e.slice(2))}if("do"==t[0]){let e=n(t.slice(1,t.length-1),i);t=t[t.length-1]}else if("if"==t[0])t=e(t[1],i)?t[2]:t[3];else{if("fn"==t[0]){let r=function(...r){return e(t[2],n(t[1],i,r))};return r.ast=[t[2],i,t[1]],r}{let e=n(t,i),r=e[0];if(!r.ast)return r(...e.slice(1));t=r.ast[0],i=n(r.ast[2],r.ast[1],e.slice(1))}}}}}let n=function(n,t,i){return i?(t=Object.create(t),n.some((e,r)=>"&"==e?t[n[r+1]]=i.slice(r):(t[e]=i[r],!1)),t):n instanceof Array?n.map((...n)=>e(n[0],t)):"string"==typeof n?n in t?t[n]:null[n]:n};E=Object.assign(Object.create(global),{js:eval,eval:(...n)=>e(n[0],E),"=":(...e)=>e[0]===e[1],"<":(...e)=>e[0]<e[1],"+":(...e)=>e[0]+e[1],"-":(...e)=>e[0]-e[1],"*":(...e)=>e[0]*e[1],"/":(...e)=>e[0]/e[1],read:(...e)=>JSON.parse(e[0]),slurp:(...e)=>require("fs").readFileSync(e[0],"utf-8"),load:(...e)=>E.eval(JSON.parse(E.slurp(e[0]))),ARGS:process.argv.slice(3)}),process.argv[2]?E.load(process.argv[2]):require("repl").start({eval:(...n)=>n[3](!1,JSON.stringify(e(JSON.parse(n[0]),E))),writer:(...e)=>e[0],terminal:!1}) |
+4
-2
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -57,3 +57,5 @@ | ||
| } else if (ast[0] == "fn") { // define new function (lambda) | ||
| let f = (...a) => EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| let f = function(...a) { | ||
| return EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| } | ||
| f.ast = [ast[2], env, ast[1]] // f.ast compresses more than f.data | ||
@@ -60,0 +62,0 @@ return f |
@@ -1,1 +0,1 @@ | ||
| for(_='[2]$i$#,nI]=Hi=LstKinQ Q P"==Er(iD,tClet B[0]7e(6{Bn=5.slic64Ei7)ZZ5D41Y),XC)Wn7VW,e=VUKrQgTslurpJSON.re(...n)=>:if()) QKanceof Arrayturn !(ielsefor([n[1]iObject.qui("eval...n41;i.length-1n," e.aK"Vfunctionpars6"process.argvcat6Y)U]; n(n,e){;n&&VQ e&&e7]._M;)n=e7](n} 6iW{;;){DW;Ln(iW,i;defZt[H6#W;~Z56W;n._M=1I}letZ{t=t);BnP)n%2&&(t[-1]H6]C;L#}{`Z;.-2Pn?VHn$:e}.e.apply(VI42}doY,)W;Li[]} ifZL6W?#:i[3];{fnZ56#,r(CI;n.aK=[#C,]I}5DU;!)6L7C=r($,I41}}}}}Br=(n,r,i){i?(r=rXn.som6(eW=>"&Ee?r[t+1]Hi4t):(r[eHi[t],!1,r):n?n.map(6V,r:"TEtypeof n?nPr?r]:null]:n};A=assign(globalX{js:,6V,AX"==== << ++ -- ** //n,adVXfs").adFileSync(V,"utf-8"XloadA.(A.(VXARGS:43)}X$?A.load($):pl").Kart({n[3](!1,Tify(6VXAXwriterVCermQal:!1})';g=/[-T-Z4-7B-EPQKLHI#$]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='[2]$i$#,nI]=Hi=L,tKstQinP P E"==Dr(iClet B[0]7e(6{Bn=5.slic64Di7)ZZ5C41Y))X(...nWW41X;V),UK)Tn7T,e=QrPgslurpJSON.reif( PQanceof Arrayturn !(iXelsefor([n[1]iObject.qui("eval:W)=>"i.length-1 n,"e.aQfunctionpars6"process.argvcat6Y)]; n(n,e){;n&&P e&&e7]._M;)n=e7]Vn} 6iT{;;){CT;Ln(iT,i;defZt[H6#T;~Z56T;n._M=1I}letZ{t=t);BnE)n%2&&(t[-1]H6]T);L#}{`Z;.-2En?Hn$:e}.e.apply(I42X}doY, )T;Li[ ]} ifZL6T?#:i[3];{fnZ5W){6#,r(KIX};n.aQ=[#K,]I}5C;!)eVL7K=r($,I41X}}}}}Br=(n,r,i){i?(r=rUn.som6(eT=>"&De?r[t+1]Hi4t):(r[eHi[t],!1)Ur):n?n.map(W)=>6,rX:"Dtypeof n?nEr?r]:null]:n};A=assign(globalU{js:,6,AU"====<<++--**//n,adUfs").adFileSync(,"utf-8"UloadA.(A.(XUARGS:43)}U$?A.load($):pl").Qart({n[3](!1,ify(6UAXUwriterKermPal:!1})';g=/[-T-Z4-7B-EPQKLHI#$]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| function n(n,e){for(;n instanceof Array&&n[0]in e&&e[n[0]]._M;)n=e[n[0]](...n.slice(1));return n}function e(i,t){for(;;){if(!(i instanceof Array))return r(i,t);if(i=n(i,t),!(i instanceof Array))return i;if("def"==i[0])return t[i[1]]=e(i[2],t);if("~"==i[0]){let n=e(i[1],t);return n._M=1,n}if("let"==i[0]){t=Object.create(t);for(let n in i[1])n%2&&(t[i[1][n-1]]=e(i[1][n],t));i=i[2]}else{if("`"==i[0])return i[1];if(".-"==i[0]){let n=r(i.slice(1),t),e=n[0][n[1]];return 2 in n?n[0][n[1]]=n[2]:e}if("."==i[0]){let n=r(i.slice(1),t),e=n[0][n[1]];return e.apply(n[0],n.slice(2))}if("do"==i[0]){let n=r(i.slice(1,i.length-1),t);i=i[i.length-1]}else if("if"==i[0])i=e(i[1],t)?i[2]:i[3];else{if("fn"==i[0]){let n=(...n)=>e(i[2],r(i[1],t,n));return n.ast=[i[2],t,i[1]],n}{let n=r(i,t),e=n[0];if(!e.ast)return e(...n.slice(1));i=e.ast[0],t=r(e.ast[2],e.ast[1],n.slice(1))}}}}}let r=function(n,r,i){return i?(r=Object.create(r),n.some((e,t)=>"&"==e?r[n[t+1]]=i.slice(t):(r[e]=i[t],!1)),r):n instanceof Array?n.map((...n)=>e(n[0],r)):"string"==typeof n?n in r?r[n]:null[n]:n};E=Object.assign(Object.create(global),{js:eval,eval:(...n)=>e(n[0],E),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],read:(...n)=>JSON.parse(n[0]),slurp:(...n)=>require("fs").readFileSync(n[0],"utf-8"),load:(...n)=>E.eval(JSON.parse(E.slurp(n[0]))),ARGS:process.argv.slice(3)}),process.argv[2]?E.load(process.argv[2]):require("repl").start({eval:(...n)=>n[3](!1,JSON.stringify(e(JSON.parse(n[0]),E))),writer:(...n)=>n[0],terminal:!1}) | ||
| function n(n,e){for(;n instanceof Array&&n[0]in e&&e[n[0]]._M;)n=e[n[0]](...n.slice(1));return n}function e(i,t){for(;;){if(!(i instanceof Array))return r(i,t);if(i=n(i,t),!(i instanceof Array))return i;if("def"==i[0])return t[i[1]]=e(i[2],t);if("~"==i[0]){let n=e(i[1],t);return n._M=1,n}if("let"==i[0]){t=Object.create(t);for(let n in i[1])n%2&&(t[i[1][n-1]]=e(i[1][n],t));i=i[2]}else{if("`"==i[0])return i[1];if(".-"==i[0]){let n=r(i.slice(1),t),e=n[0][n[1]];return 2 in n?n[0][n[1]]=n[2]:e}if("."==i[0]){let n=r(i.slice(1),t),e=n[0][n[1]];return e.apply(n[0],n.slice(2))}if("do"==i[0]){let n=r(i.slice(1,i.length-1),t);i=i[i.length-1]}else if("if"==i[0])i=e(i[1],t)?i[2]:i[3];else{if("fn"==i[0]){let n=function(...n){return e(i[2],r(i[1],t,n))};return n.ast=[i[2],t,i[1]],n}{let n=r(i,t),e=n[0];if(!e.ast)return e(...n.slice(1));i=e.ast[0],t=r(e.ast[2],e.ast[1],n.slice(1))}}}}}let r=function(n,r,i){return i?(r=Object.create(r),n.some((e,t)=>"&"==e?r[n[t+1]]=i.slice(t):(r[e]=i[t],!1)),r):n instanceof Array?n.map((...n)=>e(n[0],r)):"string"==typeof n?n in r?r[n]:null[n]:n};E=Object.assign(Object.create(global),{js:eval,eval:(...n)=>e(n[0],E),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],read:(...n)=>JSON.parse(n[0]),slurp:(...n)=>require("fs").readFileSync(n[0],"utf-8"),load:(...n)=>E.eval(JSON.parse(E.slurp(n[0]))),ARGS:process.argv.slice(3)}),process.argv[2]?E.load(process.argv[2]):require("repl").start({eval:(...n)=>n[3](!1,JSON.stringify(e(JSON.parse(n[0]),E))),writer:(...n)=>n[0],terminal:!1}) |
+4
-2
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -73,3 +73,5 @@ | ||
| } else if (ast[0] == "fn") { // define new function (lambda) | ||
| let f = (...a) => EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| let f = function(...a) { | ||
| return EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| } | ||
| f.ast = [ast[2], env, ast[1]] // f.ast compresses more than f.data | ||
@@ -76,0 +78,0 @@ return f |
@@ -1,1 +0,1 @@ | ||
| for(_='[0]@n@$$,#]=IinH[1]LtLK,i)Qe(PPKQE H D,i,C"==Bt=7),6,i6e=$5strHg4r(Z{foZ;YslurpXJSON.WreV[2]UtUTif()) Hstanceof ArrayVturn !(tlet {n=.slicPBt@)Zt1(...n)=>:[nObject.throwVquiV("evalelse...n1;t.length-1nL," e.ast"$functionWparsPprocess.argv"cVatP)5L]; n(n,e)Yn&&$H e&&e@]._M;)n=e@](n} PtQY;){ZtQ;7n(t,i6t;defi[KIPTQ;~E;n._M=1,n}let{i=i);foZnDK)n%2&&(i[K-1]IPK],i;7T}{`K;.-2Dn?$LInU:e}.e.apply(#n2}trytry{E}catch(n){PTU,Z[TL]C]} do,6i);7t[]} if7E?T:t[3];{fnPT,ZKCn;n.as7[TCK],n}Zt5;!)P7@,i=ZU,L,n1}}}}}r=(n,r,t){t?(r=r6n.somP(eQ=>"&Be?r[i+1]Iti):(r[eIt[i],!1,r):n?n.map(P#r:"4Btypeof n?nDr?r]:A.(n+" not found"):n};A=assign(global6{js:,P#A6"==== << ++ -- ** //nL,{ $},Vad$6Xfs").VadFileSync(#"utf-8"6loadA.(A.X($6ARGS:3)}6U?A.load(U):Vpl").start({n[3](!1,W4ify(P$6A6writer#termHal:!1})';g=/[-T-Z4-7B-EPQKLHI#$@]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='[0]9n9@@,$]=#inI[1]HtHL,i)Ke(QQLKP I E,i,D"==C[2]BtB7t=6))5(...n4.slicQZ4Z15;Y),X,iXe=@WstrIgVr(U{foU;TslurpJSON.reif( Istanceof Arrayturn !(t5let {n=Ct9)UtZ1){Q7[nObject.throwqui("evalelse:4)=>"@t.length-1 nH,"e.astfunctionparsQprocess.argv"catQ)WH]; n(n,e)Tn&&@I e&&e9]._M;)n=e9]Yn} QtKT;){UtK;6n(t,iXt;defi[L#Q7K;~P;n._M=1,n}let{i=i);foUnEL)n%2&&(i[L-1]#QL],i5;67}{`L;.-2En?@H#nB:e}.e.apply($nZ25}trytry{P}catch(nB,U[7H]D]5} do, Xi);6t[ ]} if6P?7:t[3];{fn4,ULDn5};n.as6[7DL],n}UtW;!)eY69,i=UB,H,nZ15}}}}}r=(n,r,t){t?(r=rXn.somQ(eK=>"&Ce?r[i+1]#tZi):(r[e#t[i],!1)Xr):n?n.map(4)=>Q$r5:"VCtypeof n?nEr?r]:A.(n+" not found"):n};A=assign(globalX{js:,Q$AX"====<<++--**//nH,{ @},ad@Xfs").adFileSync($"utf-8"XloadA.(A.(@5XARGS:Z3)}XB?A.load(B):pl").start({n[3](!1,Vify(Q@XA5Xwriter$termIal:!1})';g=/[-T-Z4-7B-EPQKLHI#$@9]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| function n(n,e){for(;n instanceof Array&&n[0]in e&&e[n[0]]._M;)n=e[n[0]](...n.slice(1));return n}function e(t,i){for(;;){if(!(t instanceof Array))return r(t,i);if(t=n(t,i),!(t instanceof Array))return t;if("def"==t[0])return i[t[1]]=e(t[2],i);if("~"==t[0]){let n=e(t[1],i);return n._M=1,n}if("let"==t[0]){i=Object.create(i);for(let n in t[1])n%2&&(i[t[1][n-1]]=e(t[1][n],i));t=t[2]}else{if("`"==t[0])return t[1];if(".-"==t[0]){let n=r(t.slice(1),i),e=n[0][n[1]];return 2 in n?n[0][n[1]]=n[2]:e}if("."==t[0]){let n=r(t.slice(1),i),e=n[0][n[1]];return e.apply(n[0],n.slice(2))}if("try"==t[0])try{return e(t[1],i)}catch(n){return e(t[2][2],r([t[2][1]],i,[n]))}else if("do"==t[0]){let n=r(t.slice(1,t.length-1),i);t=t[t.length-1]}else if("if"==t[0])t=e(t[1],i)?t[2]:t[3];else{if("fn"==t[0]){let n=(...n)=>e(t[2],r(t[1],i,n));return n.ast=[t[2],i,t[1]],n}{let n=r(t,i),e=n[0];if(!e.ast)return e(...n.slice(1));t=e.ast[0],i=r(e.ast[2],e.ast[1],n.slice(1))}}}}}let r=function(n,r,t){return t?(r=Object.create(r),n.some((e,i)=>"&"==e?r[n[i+1]]=t.slice(i):(r[e]=t[i],!1)),r):n instanceof Array?n.map((...n)=>e(n[0],r)):"string"==typeof n?n in r?r[n]:E.throw(n+" not found"):n};E=Object.assign(Object.create(global),{js:eval,eval:(...n)=>e(n[0],E),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],throw:(...n)=>{throw n[0]},read:(...n)=>JSON.parse(n[0]),slurp:(...n)=>require("fs").readFileSync(n[0],"utf-8"),load:(...n)=>E.eval(JSON.parse(E.slurp(n[0]))),ARGS:process.argv.slice(3)}),process.argv[2]?E.load(process.argv[2]):require("repl").start({eval:(...n)=>n[3](!1,JSON.stringify(e(JSON.parse(n[0]),E))),writer:(...n)=>n[0],terminal:!1}) | ||
| function n(n,e){for(;n instanceof Array&&n[0]in e&&e[n[0]]._M;)n=e[n[0]](...n.slice(1));return n}function e(t,i){for(;;){if(!(t instanceof Array))return r(t,i);if(t=n(t,i),!(t instanceof Array))return t;if("def"==t[0])return i[t[1]]=e(t[2],i);if("~"==t[0]){let n=e(t[1],i);return n._M=1,n}if("let"==t[0]){i=Object.create(i);for(let n in t[1])n%2&&(i[t[1][n-1]]=e(t[1][n],i));t=t[2]}else{if("`"==t[0])return t[1];if(".-"==t[0]){let n=r(t.slice(1),i),e=n[0][n[1]];return 2 in n?n[0][n[1]]=n[2]:e}if("."==t[0]){let n=r(t.slice(1),i),e=n[0][n[1]];return e.apply(n[0],n.slice(2))}if("try"==t[0])try{return e(t[1],i)}catch(n){return e(t[2][2],r([t[2][1]],i,[n]))}else if("do"==t[0]){let n=r(t.slice(1,t.length-1),i);t=t[t.length-1]}else if("if"==t[0])t=e(t[1],i)?t[2]:t[3];else{if("fn"==t[0]){let n=function(...n){return e(t[2],r(t[1],i,n))};return n.ast=[t[2],i,t[1]],n}{let n=r(t,i),e=n[0];if(!e.ast)return e(...n.slice(1));t=e.ast[0],i=r(e.ast[2],e.ast[1],n.slice(1))}}}}}let r=function(n,r,t){return t?(r=Object.create(r),n.some((e,i)=>"&"==e?r[n[i+1]]=t.slice(i):(r[e]=t[i],!1)),r):n instanceof Array?n.map((...n)=>e(n[0],r)):"string"==typeof n?n in r?r[n]:E.throw(n+" not found"):n};E=Object.assign(Object.create(global),{js:eval,eval:(...n)=>e(n[0],E),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],throw:(...n)=>{throw n[0]},read:(...n)=>JSON.parse(n[0]),slurp:(...n)=>require("fs").readFileSync(n[0],"utf-8"),load:(...n)=>E.eval(JSON.parse(E.slurp(n[0]))),ARGS:process.argv.slice(3)}),process.argv[2]?E.load(process.argv[2]):require("repl").start({eval:(...n)=>n[3](!1,JSON.stringify(e(JSON.parse(n[0]),E))),writer:(...n)=>n[0],terminal:!1}) |
+4
-2
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -80,3 +80,5 @@ | ||
| } else if (ast[0] == "fn") { // define new function (lambda) | ||
| let f = (...a) => EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| let f = function(...a) { | ||
| return EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| } | ||
| f.ast = [ast[2], env, ast[1]] // f.ast compresses more than f.data | ||
@@ -83,0 +85,0 @@ return f |
@@ -1,1 +0,1 @@ | ||
| for(_='r=kst^[1]9r9@,i$$)#e(II@#HinL L K"==Q[0]P,nE,tD))C(...nB.slicI7B71C;6^rLg5slurp4JSON.ZreY[2]XrXWt(rV[n]Uif(TL^anceof ArrayYturn !(rCB)=>for(let{ n=QrP)V71typeof Object.nP[n9]YquiY("evalelse:"r.length-1n9," e.a^),functionZparsIprocess.argvT"cYatIie=; n(n,e){;n&&L e&&e[]._M;)n=e[]6n} Ir#{;;){TV#;Tkn(r$r;defi[@]=IW#;~H;n._M=1E}{i=i); nK@)n%2&&(i[@[n-1]]=I@U$C;kW}{`@;.-2Kn?=nX:e}.e.apply(E72C}trytry{H}catch(n){IWXD([W9]$,UC} do,i);kr[]} ifkH?W:r[3];{fnIW,V9$EC;n.a^=[W$,@]E}V$e=;T!)e6kP$=t(X,9E71C}}}}} t=(nD,r){r?(t=tn.somI(e#=>"&Qe?t[n[i+1]]=r7i):(t[e]=r[i],!1)t):n?n.map(IDC:"5Qn?nKt?tU:nullU:n};A=assign(global{js:,I,A"==== << ++ -- ** //n9$san9DypeEewnew(.bLdB)deldee Dhrow{throw },Yad4fs").YadFileSync(,"utf-8"loadA.(A.4(CARGS:73)}X?A.load(X):Ypl").^art({n[3](!1,Z5ify(IACwriterDermLal:!1})';g=/[-T-Z4-7B-EPQKLHI#$@9^k]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='r=kst^[1]9r9@,i$$)#e(II@#HinL L K"==Q[0]P[2]ErED,nC,tB))7(...n6.slicI56517;4^rLgZslurpYJSON.XreWt(rV[n]Uif(TL^anceof ArrayWturn !(r7){IDfor(let{ n=QrP)V51typeof Object.nP[n9]WquiW("evalelse:6)=>"r.length-1n9," e.a^),functionXparsIprocess.argvT"cWatIie=; n(n,e){;n&&L e&&e[]._M;)n=e[]4n} Ir#{;;){TV#;Tkn(r$r;defi[@]=ID#;~H;n._M=1C}{i=i); nK@)n%2&&(i[@[n-1]]=I@U$7;kD}{`@;.-2Kn?=nE:e}.e.apply(C527}trytry{H}catch(nEB([D9]$,U7} do,i);kr[]} ifkH?D:r[3];{fn6,V9$C7};n.a^=[D$,@]C}V$e=;T!)e4kP$=t(E,9C517}}}}} t=(nB,r){r?(t=tn.somI(e#=>"&Qe?t[n[i+1]]=r5i):(t[e]=r[i],!1)t):n?n.map(6)=>IB7:"ZQn?nKt?tU:nullU:n};A=assign(global{js:,I,A"==== << ++ -- ** //n9$san9BypeCewnew(.bLd6)deldee Bhrow{throw },WadYfs").WadFileSync(,"utf-8"loadA.(A.Y(7ARGS:53)}E?A.load(E):Wpl").^art({n[3](!1,XZify(IA7writerBermLal:!1})';g=/[-T-Z4-7B-EPQKLHI#$@9^k]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| function n(n,e){for(;n instanceof Array&&n[0]in e&&e[n[0]]._M;)n=e[n[0]](...n.slice(1));return n}function e(r,i){for(;;){if(!(r instanceof Array))return t(r,i);if(r=n(r,i),!(r instanceof Array))return r;if("def"==r[0])return i[r[1]]=e(r[2],i);if("~"==r[0]){let n=e(r[1],i);return n._M=1,n}if("let"==r[0]){i=Object.create(i);for(let n in r[1])n%2&&(i[r[1][n-1]]=e(r[1][n],i));r=r[2]}else{if("`"==r[0])return r[1];if(".-"==r[0]){let n=t(r.slice(1),i),e=n[0][n[1]];return 2 in n?n[0][n[1]]=n[2]:e}if("."==r[0]){let n=t(r.slice(1),i),e=n[0][n[1]];return e.apply(n[0],n.slice(2))}if("try"==r[0])try{return e(r[1],i)}catch(n){return e(r[2][2],t([r[2][1]],i,[n]))}else if("do"==r[0]){let n=t(r.slice(1,r.length-1),i);r=r[r.length-1]}else if("if"==r[0])r=e(r[1],i)?r[2]:r[3];else{if("fn"==r[0]){let n=(...n)=>e(r[2],t(r[1],i,n));return n.ast=[r[2],i,r[1]],n}{let n=t(r,i),e=n[0];if(!e.ast)return e(...n.slice(1));r=e.ast[0],i=t(e.ast[2],e.ast[1],n.slice(1))}}}}}let t=function(n,t,r){return r?(t=Object.create(t),n.some((e,i)=>"&"==e?t[n[i+1]]=r.slice(i):(t[e]=r[i],!1)),t):n instanceof Array?n.map((...n)=>e(n[0],t)):"string"==typeof n?n in t?t[n]:null[n]:n};E=Object.assign(Object.create(global),{js:eval,eval:(...n)=>e(n[0],E),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],isa:(...n)=>n[0]instanceof n[1],type:(...n)=>typeof n[0],new:(...n)=>new(n[0].bind(...n)),del:(...n)=>delete n[0][n[1]],throw:(...n)=>{throw n[0]},read:(...n)=>JSON.parse(n[0]),slurp:(...n)=>require("fs").readFileSync(n[0],"utf-8"),load:(...n)=>E.eval(JSON.parse(E.slurp(n[0]))),ARGS:process.argv.slice(3)}),process.argv[2]?E.load(process.argv[2]):require("repl").start({eval:(...n)=>n[3](!1,JSON.stringify(e(JSON.parse(n[0]),E))),writer:(...n)=>n[0],terminal:!1}) | ||
| function n(n,e){for(;n instanceof Array&&n[0]in e&&e[n[0]]._M;)n=e[n[0]](...n.slice(1));return n}function e(r,i){for(;;){if(!(r instanceof Array))return t(r,i);if(r=n(r,i),!(r instanceof Array))return r;if("def"==r[0])return i[r[1]]=e(r[2],i);if("~"==r[0]){let n=e(r[1],i);return n._M=1,n}if("let"==r[0]){i=Object.create(i);for(let n in r[1])n%2&&(i[r[1][n-1]]=e(r[1][n],i));r=r[2]}else{if("`"==r[0])return r[1];if(".-"==r[0]){let n=t(r.slice(1),i),e=n[0][n[1]];return 2 in n?n[0][n[1]]=n[2]:e}if("."==r[0]){let n=t(r.slice(1),i),e=n[0][n[1]];return e.apply(n[0],n.slice(2))}if("try"==r[0])try{return e(r[1],i)}catch(n){return e(r[2][2],t([r[2][1]],i,[n]))}else if("do"==r[0]){let n=t(r.slice(1,r.length-1),i);r=r[r.length-1]}else if("if"==r[0])r=e(r[1],i)?r[2]:r[3];else{if("fn"==r[0]){let n=function(...n){return e(r[2],t(r[1],i,n))};return n.ast=[r[2],i,r[1]],n}{let n=t(r,i),e=n[0];if(!e.ast)return e(...n.slice(1));r=e.ast[0],i=t(e.ast[2],e.ast[1],n.slice(1))}}}}}let t=function(n,t,r){return r?(t=Object.create(t),n.some((e,i)=>"&"==e?t[n[i+1]]=r.slice(i):(t[e]=r[i],!1)),t):n instanceof Array?n.map((...n)=>e(n[0],t)):"string"==typeof n?n in t?t[n]:null[n]:n};E=Object.assign(Object.create(global),{js:eval,eval:(...n)=>e(n[0],E),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],isa:(...n)=>n[0]instanceof n[1],type:(...n)=>typeof n[0],new:(...n)=>new(n[0].bind(...n)),del:(...n)=>delete n[0][n[1]],throw:(...n)=>{throw n[0]},read:(...n)=>JSON.parse(n[0]),slurp:(...n)=>require("fs").readFileSync(n[0],"utf-8"),load:(...n)=>E.eval(JSON.parse(E.slurp(n[0]))),ARGS:process.argv.slice(3)}),process.argv[2]?E.load(process.argv[2]):require("repl").start({eval:(...n)=>n[3](!1,JSON.stringify(e(JSON.parse(n[0]),E))),writer:(...n)=>n[0],terminal:!1}) |
+4
-2
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -80,3 +80,5 @@ | ||
| } else if (ast[0] == "fn") { // define new function (lambda) | ||
| let f = (...a) => EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| let f = function(...a) { | ||
| return EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| } | ||
| f.ast = [ast[2], env, ast[1]] // f.ast compresses more than f.data | ||
@@ -83,0 +85,0 @@ return f |
@@ -1,1 +0,1 @@ | ||
| for(_='),~,["|","z"|ZZ`zYinX X WvalV;t=U=nR[tQifP)=>K(...I:InKnGmapF(tE.FE=>DstrXgCJSON.B,i)5[0]45,fR4("\\n".VuefacZelse]]Object.unctionlet))[2]t.length-1[1]n,",t4.onkeyup]\\n["textareaItKnE4,f.ast{ n=eEP(" t Xstanceof Arraycreate(.slice(< rows=9 cols=60>return "==t4)"G41)[n];f nE5{for(;;){P(!(eE5; defiQ]RE5; {i=i);for( eWt)e%2&&(iQ[e-1RE[e],iUt}{ `t; .-2Wn?n4[n]R:f} .f.apply(n4,n2} do1,)5Ut[]} PtRE5?t:t[3];{ fn{ f=IfKnE,eE,i,f;=Q,i,t],f};P(!)fIn1U4,i=e(,,n1}}}}}var e=fE,e5{i?(e=e~t.some((n,fK"&"=R?eQ[f+1=if):(e[n]=i[f],!1,e):?t.F(e:"C"==typeof t?tWe?eQ]:nullQ]:t};A=assign(this~{js:eV,eV:A~"====<<++--**//n,FGDn4E}~b.XnerHTML=\'["ZmYmXi"|+zmYMAL"defzfnZn"]|PznZ*znZ-zn",1],1Fz`",[7,8,9.zMathYrandom"</></>\',t=b.children=((Kt=t4.split)Dt?BCPy(n(BparseE~A:"").joX()';g=/[^ -36-AHJL-OST[-y{}]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='),~,["|","z"|ZZ`zYinX X WvalV;t=U=nR[tQifP)=>K(...I:InKnGmapF(tE.FE=>DstrXgCJSON.B,i)5[0]45,fR4("\\n".VuefacZelse]]Object.let))[2]t.length-1[1]n,",t4.onkeyup]\\n["textareafunctionItKnE4,f.ast{ n=eEP(" t Xstanceof Arraycreate(.slice(< rows=9 cols=60>return "==t4)"G41)[n]; nE5{for(;;){P(!(eE5; defiQ]RE5; {i=i);for( eWt)e%2&&(iQ[e-1RE[e],iUt}{ `t; .-2Wn?n4[n]R:f} .f.apply(n4,n2} do1,)5Ut[]} PtRE5?t:t[3];{ fn{ f=If){nE,eE,i,f};=Q,i,t],f};P(!)fIn1U4,i=e(,,n1}}}}}var e=E,e5{i?(e=e~t.some((n,fK"&"=R?eQ[f+1=if):(e[n]=i[f],!1,e):?t.F(e:"C"==typeof t?tWe?eQ]:nullQ]:t};A=assign(this~{js:eV,eV:A~"====<<++--**//n,FGDn4E}~b.XnerHTML=\'["ZmYmXi"|+zmYMAL"defzfnZn"]|PznZ*znZ-zn",1],1Fz`",[7,8,9.zMathYrandom"</></>\',t=b.children=((Kt=t4.split)Dt?BCPy(n(BparseE~A:"").joX()';g=/[^ -36-AHJL-OST[-y{}]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| function n(t,i){for(;;){if(!(t instanceof Array))return e(t,i);if("def"==t[0])return i[t[1]]=n(t[2],i);if("let"==t[0]){i=Object.create(i);for(let e in t[1])e%2&&(i[t[1][e-1]]=n(t[1][e],i));t=t[2]}else{if("`"==t[0])return t[1];if(".-"==t[0]){let n=e(t.slice(1),i),f=n[0][n[1]];return 2 in n?n[0][n[1]]=n[2]:f}if("."==t[0]){let n=e(t.slice(1),i),f=n[0][n[1]];return f.apply(n[0],n.slice(2))}if("do"==t[0]){let n=e(t.slice(1,t.length-1),i);t=t[t.length-1]}else if("if"==t[0])t=n(t[1],i)?t[2]:t[3];else{if("fn"==t[0]){let f=(...f)=>n(t[2],e(t[1],i,f));return f.ast=[t[2],i,t[1]],f}{let n=e(t,i),f=n[0];if(!f.ast)return f(...n.slice(1));t=f.ast[0],i=e(f.ast[2],f.ast[1],n.slice(1))}}}}}var e=function(t,e,i){return i?(e=Object.create(e),t.some((n,f)=>"&"==n?e[t[f+1]]=i.slice(f):(e[n]=i[f],!1)),e):t instanceof Array?t.map((...t)=>n(t[0],e)):"string"==typeof t?t in e?e[t]:null[t]:t};E=Object.assign(Object.create(this),{js:eval,eval:(...t)=>n(t[0],E),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],map:(...n)=>n[1].map(t=>n[0](t))}),b.innerHTML='<textarea rows=9 cols=60>["let",["m",["`","mini"]],["+","m",["`","MAL"]]]\n["def","fac",["fn",["n"],["if","n",["*","n",["fac",["-","n",1]]],1]]]\n["map","fac",["`",[7,8,9]]]\n[".","Math",["`","random"]]</textarea><textarea rows=9 cols=60></textarea>',t=b.children,t[0].onkeyup=(()=>t[1].value=t[0].value.split("\n").map(t=>t?JSON.stringify(n(JSON.parse(t),E)):"").join("\n")),t[0].onkeyup() | ||
| function n(t,i){for(;;){if(!(t instanceof Array))return e(t,i);if("def"==t[0])return i[t[1]]=n(t[2],i);if("let"==t[0]){i=Object.create(i);for(let e in t[1])e%2&&(i[t[1][e-1]]=n(t[1][e],i));t=t[2]}else{if("`"==t[0])return t[1];if(".-"==t[0]){let n=e(t.slice(1),i),f=n[0][n[1]];return 2 in n?n[0][n[1]]=n[2]:f}if("."==t[0]){let n=e(t.slice(1),i),f=n[0][n[1]];return f.apply(n[0],n.slice(2))}if("do"==t[0]){let n=e(t.slice(1,t.length-1),i);t=t[t.length-1]}else if("if"==t[0])t=n(t[1],i)?t[2]:t[3];else{if("fn"==t[0]){let f=function(...f){return n(t[2],e(t[1],i,f))};return f.ast=[t[2],i,t[1]],f}{let n=e(t,i),f=n[0];if(!f.ast)return f(...n.slice(1));t=f.ast[0],i=e(f.ast[2],f.ast[1],n.slice(1))}}}}}var e=function(t,e,i){return i?(e=Object.create(e),t.some((n,f)=>"&"==n?e[t[f+1]]=i.slice(f):(e[n]=i[f],!1)),e):t instanceof Array?t.map((...t)=>n(t[0],e)):"string"==typeof t?t in e?e[t]:null[t]:t};E=Object.assign(Object.create(this),{js:eval,eval:(...t)=>n(t[0],E),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],map:(...n)=>n[1].map(t=>n[0](t))}),b.innerHTML='<textarea rows=9 cols=60>["let",["m",["`","mini"]],["+","m",["`","MAL"]]]\n["def","fac",["fn",["n"],["if","n",["*","n",["fac",["-","n",1]]],1]]]\n["map","fac",["`",[7,8,9]]]\n[".","Math",["`","random"]]</textarea><textarea rows=9 cols=60></textarea>',t=b.children,t[0].onkeyup=(()=>t[1].value=t[0].value.split("\n").map(t=>t?JSON.stringify(n(JSON.parse(t),E)):"").join("\n")),t[0].onkeyup() |
+4
-2
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -57,3 +57,5 @@ | ||
| } else if (ast[0] == "fn") { // define new function (lambda) | ||
| let f = (...a) => EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| let f = function(...a) { | ||
| return EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| } | ||
| f.ast = [ast[2], env, ast[1]] // f.ast compresses more than f.data | ||
@@ -60,0 +62,0 @@ return f |
@@ -1,1 +0,1 @@ | ||
| for(_='re||turn z;zZ]=Y,iXinW))V.slice(UU1VT W RvalQ"==P[0]LifKt(I,rHH)G[1]EnED(nCWstanceof B BArray@!C@Vz9let7{7 e=6nL5P5)446$$iCU1#),eLHt=strWgslurpJSON.n=[e)=>[2]for(,etypeof Object.D,"throwelse(...:n"5n.length-1 et.astnfunctionparse(K("c|ate(#)E]Zmodule.exports=C){ eC){;n@&&5W e&&e[5]._M;)e[5]nTZn} tCG{;;){K(9iCG;K(eCH9n;def4zr[DYIG;~$tCEGZe._M=1}74{r=r);7 eRD)e%2&&(r[D-1]YtCE]G);}{`4zD;.-2Re?EYe:t}.t.apply(U2V}try4try{ztCEG}catch(e){zIX([E]H,]V} do#, r);n[ ]} K4tCEG?:n[3];{fn$IXCEHVZe.ast=[H,D]}6iC;K(!)zteT;LH=i(,ET}}}}}7 i=(eXG{zr?(i=i).some(C,t"&Pn?i[t+1]YrUt):(i[nYr[t],!1)i):e@?e.map(nI5XV:"Pe?eRi?i]:n.(e+" not found"):e}Zassign(n{js:eQQ:I,n"====<<++--**//DXsa5BD,type5,newnew(5.bWdn)delde7e 5[D],{ 5}Head5|qui|("fs").|adFileSync(5,"utf-8"load:n.eQ(n.(V|p:Ky(InV})}';g=/[^ -"%-38:-?AFJM-OS[-y{}~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_=']=|,izinZt(Y))X.slice(WW1XV Z UvalT"==R[0]QifPreL,rKK)I[1]HnHG(nEZstanceof D DArrayCLturn B!ECXB@let9{9 e=7nQ6R6)55744iEW1$),#eQK#t=strZgslurpJSON.n=[e)=>[2]ne){BYfor(,etypeof Object.G,"throwelse(...:n"6 :en.length-1t.astparse(P("functioncLate($)H];Bmodule.exports=E){ eE){;nC&&6Z e&&e[6]._M;)e[6]nV;Bn} tEI{;;){P(@iEI;P(eEK#@n;def5Br[G|YI;~4tEHI;Be._M=1}95{r=r);9 eUG)e%2&&(r[G-1]|tEH]I);}{`5BG;.-2Ue?H|e:t}.t.apply(W2X}try5try{BtEHI}catch(z([H]K,]X} do$,#r);n[]} P5tEHI?:n[3];{fn4zEHKX};Be.ast=[K,G]}7iE;P(!)BteV;QK=i(,HV}}}}}9 i=(ezI{Br?(i=i).some(E,t"&Rn?i[t+1]|rWt):(i[n|r[t],!1)#i):eC?e.map(nY6zX:"Re?eUi?i]:n.(e+" not found"):e};Bassign(n#{js:eTTY,n#"= ===< <+ +- -* */ /Gzsa6DG,type6,newnew(6.bZdn)#delde9e 6[G],{ 6}Kead6#LquiL("fs").LadFileSync(6,"utf-8"#loadn.eT(n.(X#LpPy(Y#nX})}';g=/[^ -"%-38:-?AFJM-OS[-y{}~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| module.exports=function(n){function e(n,e){for(;n instanceof Array&&n[0]in e&&e[n[0]]._M;)n=e[n[0]](...n.slice(1));return n}function t(n,r){for(;;){if(!(n instanceof Array))return i(n,r);if(n=e(n,r),!(n instanceof Array))return n;if("def"==n[0])return r[n[1]]=t(n[2],r);if("~"==n[0]){let e=t(n[1],r);return e._M=1,e}if("let"==n[0]){r=Object.create(r);for(let e in n[1])e%2&&(r[n[1][e-1]]=t(n[1][e],r));n=n[2]}else{if("`"==n[0])return n[1];if(".-"==n[0]){let e=i(n.slice(1),r),t=e[0][e[1]];return 2 in e?e[0][e[1]]=e[2]:t}if("."==n[0]){let e=i(n.slice(1),r),t=e[0][e[1]];return t.apply(e[0],e.slice(2))}if("try"==n[0])try{return t(n[1],r)}catch(e){return t(n[2][2],i([n[2][1]],r,[e]))}else if("do"==n[0]){let e=i(n.slice(1,n.length-1),r);n=n[n.length-1]}else if("if"==n[0])n=t(n[1],r)?n[2]:n[3];else{if("fn"==n[0]){let e=(...e)=>t(n[2],i(n[1],r,e));return e.ast=[n[2],r,n[1]],e}{let e=i(n,r),t=e[0];if(!t.ast)return t(...e.slice(1));n=t.ast[0],r=i(t.ast[2],t.ast[1],e.slice(1))}}}}}let i=function(e,i,r){return r?(i=Object.create(i),e.some((n,t)=>"&"==n?i[e[t+1]]=r.slice(t):(i[n]=r[t],!1)),i):e instanceof Array?e.map((...n)=>t(n[0],i)):"string"==typeof e?e in i?i[e]:n.throw(e+" not found"):e};return n=Object.assign(Object.create(n),{js:eval,eval:(...e)=>t(e[0],n),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],isa:(...n)=>n[0]instanceof n[1],type:(...n)=>typeof n[0],new:(...n)=>new(n[0].bind(...n)),del:(...n)=>delete n[0][n[1]],throw:(...n)=>{throw n[0]},read:(...n)=>JSON.parse(n[0]),slurp:(...n)=>require("fs").readFileSync(n[0],"utf-8"),load:(...e)=>n.eval(JSON.parse(n.slurp(e[0]))),rep:(...e)=>JSON.stringify(t(JSON.parse(e[0]),n))})} | ||
| module.exports=function(n){function e(n,e){for(;n instanceof Array&&n[0]in e&&e[n[0]]._M;)n=e[n[0]](...n.slice(1));return n}function t(n,r){for(;;){if(!(n instanceof Array))return i(n,r);if(n=e(n,r),!(n instanceof Array))return n;if("def"==n[0])return r[n[1]]=t(n[2],r);if("~"==n[0]){let e=t(n[1],r);return e._M=1,e}if("let"==n[0]){r=Object.create(r);for(let e in n[1])e%2&&(r[n[1][e-1]]=t(n[1][e],r));n=n[2]}else{if("`"==n[0])return n[1];if(".-"==n[0]){let e=i(n.slice(1),r),t=e[0][e[1]];return 2 in e?e[0][e[1]]=e[2]:t}if("."==n[0]){let e=i(n.slice(1),r),t=e[0][e[1]];return t.apply(e[0],e.slice(2))}if("try"==n[0])try{return t(n[1],r)}catch(e){return t(n[2][2],i([n[2][1]],r,[e]))}else if("do"==n[0]){let e=i(n.slice(1,n.length-1),r);n=n[n.length-1]}else if("if"==n[0])n=t(n[1],r)?n[2]:n[3];else{if("fn"==n[0]){let e=function(...e){return t(n[2],i(n[1],r,e))};return e.ast=[n[2],r,n[1]],e}{let e=i(n,r),t=e[0];if(!t.ast)return t(...e.slice(1));n=t.ast[0],r=i(t.ast[2],t.ast[1],e.slice(1))}}}}}let i=function(e,i,r){return r?(i=Object.create(i),e.some((n,t)=>"&"==n?i[e[t+1]]=r.slice(t):(i[n]=r[t],!1)),i):e instanceof Array?e.map((...n)=>t(n[0],i)):"string"==typeof e?e in i?i[e]:n.throw(e+" not found"):e};return n=Object.assign(Object.create(n),{js:eval,eval:(...e)=>t(e[0],n),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],isa:(...n)=>n[0]instanceof n[1],type:(...n)=>typeof n[0],new:(...n)=>new(n[0].bind(...n)),del:(...n)=>delete n[0][n[1]],throw:(...n)=>{throw n[0]},read:(...n)=>JSON.parse(n[0]),slurp:(...n)=>require("fs").readFileSync(n[0],"utf-8"),load:(...e)=>n.eval(JSON.parse(n.slurp(e[0]))),rep:(...e)=>JSON.stringify(t(JSON.parse(e[0]),n))})} |
+4
-2
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -82,3 +82,5 @@ | ||
| } else if (ast[0] == "fn") { // define new function (lambda) | ||
| let f = (...a) => EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| let f = function(...a) { | ||
| return EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| } | ||
| f.ast = [ast[2], env, ast[1]] // f.ast compresses more than f.data | ||
@@ -85,0 +87,0 @@ return f |
@@ -1,1 +0,1 @@ | ||
| for(_='return Z;ZY]=X))We(V.slicVUU1WT,rR(nQ[1]PR)KnPIVIKH)=>G(...FFtGEinD D C"==B.as@,i9if8Dstanceof 7 7Array6!Q6WZ5let4{4 t=n[0]B)iQU1t[0]K,e=strDgJSON.n=[te@t[2]Objectfor(,ttypeof I,"throwelse:FnG " parsVn.length-1nfunction8(".creatV)P]YmDiMAL=Q){ tQ){;n6&&D t&&t[]._M;)t[]FnTYn} eQK{;;){8(5iQK;8(tQK,5n;defZr[IXVK;~HYt._M=1}4{r=r);4 tCI)t%2&&(r[I-1]XVI]K);}{`ZI;.-2Ct?PXt:e}.e.apply(U2W}trytry{ZH}catch(t){ZV9([P]R,]W} do,)K;n[]} 8H?:n[3];{fnEV9(IRWYt@t=[R,I]}iQ;8(!)ZeFtT;[0]R=i(,PT}}}}}4 i=(t9K{Zr?(i=i).somVQ,eG"&Bn?i[e+1]XrUe):(i[nXr[e],!1W9):t6?t.map(FnGV9W:"Bt?tCi?i]:n.(t+" not found"):t}Y@sign(n||this),{js:eval,eval:EV,n),"====<<++--**//I9sa 7Iype ,new new(.bDdFnW,del de4e [I], { }Read )Rep:E8y(V),nW})}';g=/[^ -3:-?AJL-OS[-~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='return Z;ZY]=X))We(V.slicVUU1WT,rR(nQ[1]PR)KnPIVIKHinG G F"==E.asD,iCifBGstanceof @ @Array9!Q9WZ8let7{7 t=6n[0]5E5)446iQU1t[0]K,e=strGgJSON.n=[teDt[2]nt){ZVObjectfor(,ttypeof I,")=>throwelse(... : n"5parsVn.length-1B("function.creatV)P]YmGiMAL=Q){ tQ){;n9&&5G t&&t[5]._M;)t[5] nTYn} eQK{;;){B(8iQK;B(tQK,8n;def4Zr[IXVK;~HYt._M=1}74{r=r);7 tFI)t%2&&(r[I-1]XVI]K);}{`4ZI;.-2Ft?PXt:e}.e.apply(U2W}try4try{ZH}catch(C([P]R,]W} do,)K;n[]} B4H?:n[3];{fn C(IRW}YtDt=[R,I]}6iQ;B(!)Ze tT;[0]R=i(,PT}}}}}7 i=(tCK{Zr?(i=i).somVQ,e"&En?i[e+1]XrUe):(i[nXr[e],!1WC):t9?t.map( nV5CW:"Et?tFi?i]:n.(t+" not found"):t}YDsign(n||this),{js:eval,eval: tV,n),"====<<++--**//ICsa5@Iype5,newnew(5.bGd nW,delde7e 5[I],{ 5}Read5)Rep: tBy(V),nW})}';g=/[^ -3:-?AJL-OS[-~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| miniMAL=function(n){function t(n,t){for(;n instanceof Array&&n[0]in t&&t[n[0]]._M;)n=t[n[0]](...n.slice(1));return n}function e(n,r){for(;;){if(!(n instanceof Array))return i(n,r);if(n=t(n,r),!(n instanceof Array))return n;if("def"==n[0])return r[n[1]]=e(n[2],r);if("~"==n[0]){let t=e(n[1],r);return t._M=1,t}if("let"==n[0]){r=Object.create(r);for(let t in n[1])t%2&&(r[n[1][t-1]]=e(n[1][t],r));n=n[2]}else{if("`"==n[0])return n[1];if(".-"==n[0]){let t=i(n.slice(1),r),e=t[0][t[1]];return 2 in t?t[0][t[1]]=t[2]:e}if("."==n[0]){let t=i(n.slice(1),r),e=t[0][t[1]];return e.apply(t[0],t.slice(2))}if("try"==n[0])try{return e(n[1],r)}catch(t){return e(n[2][2],i([n[2][1]],r,[t]))}else if("do"==n[0]){let t=i(n.slice(1,n.length-1),r);n=n[n.length-1]}else if("if"==n[0])n=e(n[1],r)?n[2]:n[3];else{if("fn"==n[0]){let t=(...t)=>e(n[2],i(n[1],r,t));return t.ast=[n[2],r,n[1]],t}{let t=i(n,r),e=t[0];if(!e.ast)return e(...t.slice(1));n=e.ast[0],r=i(e.ast[2],e.ast[1],t.slice(1))}}}}}let i=function(t,i,r){return r?(i=Object.create(i),t.some((n,e)=>"&"==n?i[t[e+1]]=r.slice(e):(i[n]=r[e],!1)),i):t instanceof Array?t.map((...n)=>e(n[0],i)):"string"==typeof t?t in i?i[t]:n.throw(t+" not found"):t};return n=Object.assign(Object.create(n||this),{js:eval,eval:(...t)=>e(t[0],n),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],isa:(...n)=>n[0]instanceof n[1],type:(...n)=>typeof n[0],new:(...n)=>new(n[0].bind(...n)),del:(...n)=>delete n[0][n[1]],throw:(...n)=>{throw n[0]},read:(...n)=>JSON.parse(n[0]),rep:(...t)=>JSON.stringify(e(JSON.parse(t[0]),n))})} | ||
| miniMAL=function(n){function t(n,t){for(;n instanceof Array&&n[0]in t&&t[n[0]]._M;)n=t[n[0]](...n.slice(1));return n}function e(n,r){for(;;){if(!(n instanceof Array))return i(n,r);if(n=t(n,r),!(n instanceof Array))return n;if("def"==n[0])return r[n[1]]=e(n[2],r);if("~"==n[0]){let t=e(n[1],r);return t._M=1,t}if("let"==n[0]){r=Object.create(r);for(let t in n[1])t%2&&(r[n[1][t-1]]=e(n[1][t],r));n=n[2]}else{if("`"==n[0])return n[1];if(".-"==n[0]){let t=i(n.slice(1),r),e=t[0][t[1]];return 2 in t?t[0][t[1]]=t[2]:e}if("."==n[0]){let t=i(n.slice(1),r),e=t[0][t[1]];return e.apply(t[0],t.slice(2))}if("try"==n[0])try{return e(n[1],r)}catch(t){return e(n[2][2],i([n[2][1]],r,[t]))}else if("do"==n[0]){let t=i(n.slice(1,n.length-1),r);n=n[n.length-1]}else if("if"==n[0])n=e(n[1],r)?n[2]:n[3];else{if("fn"==n[0]){let t=function(...t){return e(n[2],i(n[1],r,t))};return t.ast=[n[2],r,n[1]],t}{let t=i(n,r),e=t[0];if(!e.ast)return e(...t.slice(1));n=e.ast[0],r=i(e.ast[2],e.ast[1],t.slice(1))}}}}}let i=function(t,i,r){return r?(i=Object.create(i),t.some((n,e)=>"&"==n?i[t[e+1]]=r.slice(e):(i[n]=r[e],!1)),i):t instanceof Array?t.map((...n)=>e(n[0],i)):"string"==typeof t?t in i?i[t]:n.throw(t+" not found"):t};return n=Object.assign(Object.create(n||this),{js:eval,eval:(...t)=>e(t[0],n),"=":(...n)=>n[0]===n[1],"<":(...n)=>n[0]<n[1],"+":(...n)=>n[0]+n[1],"-":(...n)=>n[0]-n[1],"*":(...n)=>n[0]*n[1],"/":(...n)=>n[0]/n[1],isa:(...n)=>n[0]instanceof n[1],type:(...n)=>typeof n[0],new:(...n)=>new(n[0].bind(...n)),del:(...n)=>delete n[0][n[1]],throw:(...n)=>{throw n[0]},read:(...n)=>JSON.parse(n[0]),rep:(...t)=>JSON.stringify(e(JSON.parse(t[0]),n))})} |
+4
-2
| // miniMAL | ||
| // Copyright (C) 2016 Joel Martin | ||
| // Copyright (C) 2017 Joel Martin | ||
| // Licensed under MPL 2.0 | ||
@@ -82,3 +82,5 @@ | ||
| } else if (ast[0] == "fn") { // define new function (lambda) | ||
| let f = (...a) => EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| let f = function(...a) { | ||
| return EVAL(ast[2], eval_ast_or_bind(ast[1], env, a)) | ||
| } | ||
| f.ast = [ast[2], env, ast[1]] // f.ast compresses more than f.data | ||
@@ -85,0 +87,0 @@ return f |
@@ -1,1 +0,1 @@ | ||
| for(_='["},}|]|{"{z, Z"ZYY}Wz.WVstUreUTandRnthQgetLmapKconH_FIXMEGHcatDGzDW`WCempty?Bpply@keys;Y"::b9WfnW88a7796pr5.-4or3`:2def:+Z}2)null("]]%]]{+$) %]Z($#if!"]Z}?7=Y:aliUz5-*Y"):Object:endfirUa"$:xs]$%Z}T%ringslicetruefalse9"]ZZUr8&"]Z":clauses z!WW~8&B"],count"|.:JSONU!yx >W "]ZG%|!2n8&zdoW.:Hsolelog|!W=Y1Z}%|zletvar c3e_ns =}do"|+K6z.9KfnWxa:x"]not7!YZ$nil(Z"Z"Z"U?7=Y(],|=Stz4W4HUruct3%|2name%5-*7:5:sepVK8xz!:5U?:x"],"x%]],"az2joinsep"$5-) ")"5#5intl#>=6<$>6>=9!W=]Z$<=6>$8&a%|+?7.:ArrayisArrayL649"$set6:c49:c"$Htains?6.hasOwnPropertyb"$;7.;vals7K"|fn"|kzL","a","k%|;"Hs6V`Y[]{2Db"$D8&V4W2D%|`@Q:Lz+7>W"]Z0{QY0],($laU7QW-W"]Z17z4length"B7?!W=Y0Z}%ZZ{=Y(7:Uart:&lzletWendW!W>Wl"]Z0{LlY0{%{.Uart"T7Y1]]{def@8f:&9z.:fa@fWDW9Y0Z-1]Z}laU9"]RRRCR|`ndG%]]3(33Gz23C3]]]HdW~8&0{!1{Q Y1{throwHd requires an even number of f3ms%{HsHdTWT %]],(classOf7V4W45ototype%)toSt%|2calla%],(]';g=/[^ "&*,-1<-?AEFIJM-PSX[-y~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='nd}",||"{{e}zfirZnthY,["W"WVVfnVUUa{bT]WR"]QQWLL.K,!0H{aG,nullD=G"D]CstBliB@pr-@*;Array:if9or8,!17U&G6V.-5{xs4get3map2con+_FIXME)+cat()L(V`V%T{cK$empty?#UaL?="def{]]R","applykeyscount`{VL;G{ObjectTKB4slicetringBr6G{bQ7H"W Q,"L9VV~U&4#4QV.{JSONs9yx)LZ @9L.-GlengthQn6LdoV.{+solelog Q,!W9V=|1W4 ZL@letL@var c8e_ns=["doV2{b2LfnVxLa{x"not9G"7HnilDtrueHfalse7s?UaC7W=SK-5G+Bruct8 name"];$V2UxL9{cs?{xx","aLjoinbpr- QHQ7pr0Dprintl1D>=T<>T>=G{b=]7<=T>@6a @?.{:is:a3-G{bset$-G{b{c+tains?GhasOwnPropertyb.avals2UkL3G{k GQ+sV`|[W(L@Gb(6K5V@L( aL@aY{3LZBUa>V],0RYG|0]DlaBYGV-V],1]#Ua@?G=|0WH7RCT{&zKGbV9V>VzQ,0R3z|0RreBG|1aUf{&{bK{fafV(V{b|0,-1RlaB{b"a}Ha}a}%a} re a})"]8D88)L8%8 re"classOf.55prototype toS calla"]D]';g=/[^ -"&*,-1<-?AEFIJM-PSX[-y~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
@@ -1,1 +0,1 @@ | ||
| for(_='return Z;ZY]=X))We(V.slicVUU1WT,rR(nQ[1]PR)KnPIVIKH)=>G(...FFtGEinD D C"==B.as@,i9if8Dstanceof 7 7Array6!Q6WZ5let4{4 t=n[0]B)iQU1t[0]K,e=strDgJSON.n=[te@t[2]Objectfor(,ttypeof I,"throwelse:FnG " parsVn.length-1nfunction8(".creatV)P]YmDiMAL=Q){ tQ){;n6&&D t&&t[]._M;)t[]FnTYn} eQK{;;){8(5iQK;8(tQK,5n;defZr[IXVK;~HYt._M=1}4{r=r);4 tCI)t%2&&(r[I-1]XVI]K);}{`ZI;.-2Ct?PXt:e}.e.apply(U2W}trytry{ZH}catch(t){ZV9([P]R,]W} do,)K;n[]} 8H?:n[3];{fnEV9(IRWYt@t=[R,I]}iQ;8(!)ZeFtT;[0]R=i(,PT}}}}}4 i=(t9K{Zr?(i=i).somVQ,eG"&Bn?i[e+1]XrUe):(i[nXr[e],!1W9):t6?t.map(FnGV9W:"Bt?tCi?i]:n.(t+" not found"):t}Y@sign(n||this),{js:eval,eval:EV,n),"====<<++--**//I9sa 7Iype ,new new(.bDdFnW,del de4e [I], { }Read )Rep:E8y(V),nW})}';g=/[^ -3:-?AJL-OS[-~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) | ||
| for(_='return Z;ZY]=X))We(V.slicVUU1WT,rR(nQ[1]PR)KnPIVIKHinG G F"==E.asD,iCifBGstanceof @ @Array9!Q9WZ8let7{7 t=6n[0]5E5)446iQU1t[0]K,e=strGgJSON.n=[teDt[2]nt){ZVObjectfor(,ttypeof I,")=>throwelse(... : n"5parsVn.length-1B("function.creatV)P]YmGiMAL=Q){ tQ){;n9&&5G t&&t[5]._M;)t[5] nTYn} eQK{;;){B(8iQK;B(tQK,8n;def4Zr[IXVK;~HYt._M=1}74{r=r);7 tFI)t%2&&(r[I-1]XVI]K);}{`4ZI;.-2Ft?PXt:e}.e.apply(U2W}try4try{ZH}catch(C([P]R,]W} do,)K;n[]} B4H?:n[3];{fn C(IRW}YtDt=[R,I]}6iQ;B(!)Ze tT;[0]R=i(,PT}}}}}7 i=(tCK{Zr?(i=i).somVQ,e"&En?i[e+1]XrUe):(i[nXr[e],!1WC):t9?t.map( nV5CW:"Et?tFi?i]:n.(t+" not found"):t}YDsign(n||this),{js:eval,eval: tV,n),"====<<++--**//ICsa5@Iype5,newnew(5.bGd nW,delde7e 5[I],{ 5}Read5)Rep: tBy(V),nW})}';g=/[^ -3:-?AJL-OS[-~]/.exec(_);)with(_.split(g))_=join(shift());eval(_) |
Sorry, the diff of this file is not supported yet
AI-detected potential malware
Supply chain riskAI has identified this package as malware. This is a strong signal that the package may be malicious.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
AI-detected potential malware
Supply chain riskAI has identified this package as malware. This is a strong signal that the package may be malicious.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
989976
0.2%71
2.9%2271
1.38%33
-2.94%15
7.14%2
100%