squint-cljs 0.3.37 → 0.3.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli.js +41 -41
- package/lib/compiler.js +236 -236
- package/lib/compiler.node.js +25 -25
- package/lib/compiler.sci.js +1083 -1083
- package/lib/squint.core.umd.js +1 -1
- package/package.json +1 -1
- package/src/squint/core.js +91 -10
package/lib/squint.core.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var squint;(squint||={}).core=(()=>{var k=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var Ge=Object.prototype.hasOwnProperty;var Pe=(e,t)=>{for(var n in t)k(e,n,{get:t[n],enumerable:!0})},Ye=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Le(t))!Ge.call(e,o)&&o!==n&&k(e,o,{get:()=>t[o],enumerable:!(r=Be(t,o))||r.enumerable});return e};var qe=e=>Ye(k({},"__esModule",{value:!0}),e);var Wn={};Pe(Wn,{Atom:()=>ce,IIterable:()=>L,IIterable__iterator:()=>oe,LazySeq:()=>Xt,NaN_QMARK_:()=>Sn,PROTOCOL_SENTINEL:()=>st,_:()=>Ce,_PLUS_:()=>ze,_iterator:()=>Q,aclone:()=>yn,add_watch:()=>wn,alength:()=>xn,apply:()=>mt,array_QMARK_:()=>vt,aset:()=>_n,assoc:()=>m,assoc_BANG_:()=>b,assoc_in:()=>Z,assoc_in_BANG_:()=>Ve,atom:()=>pt,boolean$:()=>cn,boolean_QMARK_:()=>Cn,bounded_count:()=>$n,butlast:()=>en,coll_QMARK_:()=>Nn,comp:()=>We,compare:()=>En,complement:()=>xe,concat:()=>_e,conj:()=>F,conj_BANG_:()=>B,cons:()=>ue,constantly:()=>At,contains_QMARK_:()=>X,count:()=>R,counted_QMARK_:()=>Te,cycle:()=>Bt,dec:()=>Ze,deref:()=>se,disj:()=>Je,disj_BANG_:()=>H,dissoc:()=>Ue,dissoc_BANG_:()=>De,distinct:()=>Lt,doall:()=>hn,dorun:()=>dn,drop:()=>O,drop_last:()=>tn,drop_while:()=>Me,empty:()=>we,empty_QMARK_:()=>Jt,es6_iterator:()=>G,even_QMARK_:()=>pe,every_QMARK_:()=>Re,every_pred:()=>gn,ex_cause:()=>Gn,ex_data:()=>Bn,ex_info:()=>Pn,ex_message:()=>Ln,false_QMARK_:()=>un,ffirst:()=>He,filter:()=>q,filterv:()=>rt,find:()=>Vn,first:()=>M,fn_QMARK_:()=>Qn,fnil:()=>$,frequencies:()=>Ht,get:()=>h,get_in:()=>ve,group_by:()=>Ft,identical_QMARK_:()=>It,identity:()=>de,inc:()=>ee,int_QMARK_:()=>Ie,integer_QMARK_:()=>Yn,interleave:()=>he,interpose:()=>Et,into:()=>Ae,into_array:()=>Qe,iterable:()=>i,iterate:()=>vn,js_keys:()=>On,js_obj:()=>pn,juxt:()=>Rn,keep:()=>qt,keep_indexed:()=>it,key:()=>me,keys:()=>ke,last:()=>et,lazy:()=>c,list:()=>Mt,list_QMARK_:()=>gt,map:()=>A,map_QMARK_:()=>An,map_indexed:()=>ut,mapcat:()=>Rt,mapv:()=>ae,max:()=>E,merge:()=>jt,merge_with:()=>Ot,meta:()=>qn,min:()=>N,neg_QMARK_:()=>ln,next:()=>Se,nil_QMARK_:()=>ct,not:()=>ie,not_any_QMARK_:()=>Vt,not_every_QMARK_:()=>Yt,nth:()=>ne,number_QMARK_:()=>jn,odd_QMARK_:()=>bt,partial:()=>Tt,partition:()=>St,partition_all:()=>Qt,pos_QMARK_:()=>an,pr_str:()=>fe,println:()=>te,prn:()=>at,rand_int:()=>Ke,rand_nth:()=>Dt,range:()=>_t,re_matches:()=>dt,re_seq:()=>Oe,reduce:()=>I,reduce_kv:()=>bn,reduced:()=>tt,reduced_QMARK_:()=>nt,regexp_QMARK_:()=>Tn,remove:()=>ot,remove_watch:()=>mn,repeat:()=>C,repeatedly:()=>Zt,replace:()=>Wt,reset_BANG_:()=>le,rest:()=>Xe,reverse:()=>zt,satisfies_QMARK_:()=>$e,second:()=>Fe,select_keys:()=>Kt,seq:()=>P,seqable_QMARK_:()=>re,set:()=>wt,shuffle:()=>$t,some:()=>Ee,some_QMARK_:()=>fn,some_fn:()=>Mn,sort:()=>Ct,split_at:()=>nn,split_with:()=>rn,str:()=>ft,string_QMARK_:()=>In,subs:()=>je,subvec:()=>ht,swap_BANG_:()=>xt,system_time:()=>kt,take:()=>j,take_nth:()=>Nt,take_while:()=>ge,to_array:()=>Kn,true_QMARK_:()=>on,update:()=>Gt,update_BANG_:()=>V,update_in:()=>Pt,val:()=>be,vals:()=>kn,vec:()=>g,vector:()=>z,vector_QMARK_:()=>yt,with_meta:()=>zn,zero_QMARK_:()=>sn});function ze(...e){return e.reduce((t,n)=>t+n,0)}function Ce(...e){return e.reduce((t,n)=>t-n)}function $e(e,t){return t[e]}function b(e,t,n,...r){if(r.length%2!==0)throw new Error("Illegal argument: assoc expects an odd number of arguments.");switch(s(e)){case p:e.set(t,n);for(let o=0;o<r.length;o+=2)e.set(r[o],r[o+1]);break;case x:case _:e[t]=n;for(let o=0;o<r.length;o+=2)e[r[o]]=r[o+1];break;default:throw new Error("Illegal argument: assoc! expects a Map, Array, or Object as the first argument.")}return e}function D(e){switch(s(e)){case p:return new Map(e.entries());case x:return[...e];case _:return{...e};default:throw new Error(`Don't know how to copy object of type ${typeof e}.`)}}function m(e,t,n,...r){e||(e={});let o=D(e);return b(o,t,n,...r),o}const p=1,x=2,_=3,w=4,d=5,K=6;function T(e){switch(e){case p:return new Map;case x:return[];case _:return{};case w:return new S;case d:return new Set;case K:return c(function*(){})}}function s(e){if(e instanceof Map)return p;if(e instanceof Set)return d;if(e instanceof S)return w;if(e instanceof Array)return x;if(e instanceof Y)return K;if(e instanceof Object)return _}function U(e,t,n,r,o){let u=s(n);if(u!==p&&u!==x&&u!==_)throw new Error(`Illegal argument: ${t} expects the first argument to be a Map, Array, or Object.`);const f=[n];let a=n;for(let l=0;l<r.length-1;l+=1){let J=r[l],y;a instanceof Map?y=a.get(J):y=a[J],y||(y=T(u)),f.push(y),a=y}f.push(o);for(let l=f.length-2;l>=0;l-=1)f[l]=e(f[l],r[l],f[l+1]);return f[0]}function Z(e,t,n){return U(m,"assoc-in",e,t,n)}function Ve(e,t,n){return U(b,"assoc-in!",e,t,n)}function We(...e){if(e.length===0)return de;if(e.length===1)return e[0];let[t,...n]=e.slice().reverse();return function(...r){let o=t(...r);for(const u of n)o=u(o);return o}}function B(...e){if(e.length===0)return z();let[t,...n]=e;switch(t==null&&(t=[]),s(t)){case d:for(const r of n)t.add(r);break;case w:t.unshift(...n.reverse());break;case x:t.push(...n);break;case p:for(const r of n)r instanceof Array?t.set(r[0],r[1]):i(r).forEach(o=>{t.set(o[0],o[1])});break;case _:for(const r of n)r instanceof Array?t[r[0]]=r[1]:Object.assign(t,r);break;default:throw new Error("Illegal argument: conj! expects a Set, Array, List, Map, or Object as the first argument.")}return t}function F(...e){if(e.length===0)return z();let[t,...n]=e;switch(t==null&&(t=[]),s(t)){case d:return new Set([...t,...n]);case w:return new S(...n.reverse(),...t);case x:return[...t,...n];case p:const r=new Map(t);for(const u of n)u instanceof Array?r.set(u[0],u[1]):i(u).forEach(f=>{r.set(f[0],f[1])});return r;case K:return c(function*(){yield*n,yield*t});case _:const o={...t};for(const u of n)u instanceof Array?o[u[0]]=u[1]:Object.assign(o,u);return o;default:throw new Error("Illegal argument: conj expects a Set, Array, List, Map, or Object as the first argument.")}}function H(e,...t){for(const n of t)e.delete(n);return e}function Je(e,...t){let n=new Set([...e]);return H(n,...t)}function X(e,t){switch(s(e)){case d:case p:return e.has(t);case void 0:return!1;default:return t in e}}function De(e,...t){for(const n of t)delete e[n];return e}function Ue(e,...t){let n={...e};for(const r of t)delete n[r];return n}function ee(e){return e+1}function Ze(e){return e-1}function te(...e){console.log(...e)}function ne(e,t,n){if(e){var r=void 0;if(e instanceof Array)r=e[t];else{let o=i(e),u=0;for(let f of o)if(u++==t){r=f;break}}if(r!==void 0)return r}return n}function h(e,t,n=void 0){let r;switch(s(e)){case d:e.has(t)&&(r=t);break;case p:r=e.get(t);break;case void 0:break;default:r=e[t];break}return r!==void 0?r:n}function re(e){return typeof e=="string"||e===null||e===void 0||e instanceof Object&&Symbol.iterator in e}function i(e){return e==null?[]:re(e)?e:Object.entries(e)}const L=Symbol("Iterable"),oe=Symbol.iterator;function Q(e){return e[Symbol.iterator]()}const G=Q;function P(e){let t=i(e);return t.length===0||t.size===0?null:t}function M(e){let[t]=i(e);return t}function Fe(e){let[t,n]=i(e);return n}function He(e){return M(M(e))}function Xe(e){return c(function*(){let t=!0;for(const n of i(e))t?t=!1:yield n})}class v{value;constructor(t){this.value=t}_deref(){return this.value}}function et(e){switch(e=i(e),s(e)){case x:return e[e.length-1];default:let t;for(const n of e)t=n;return t}}function tt(e){return new v(e)}function nt(e){return e instanceof v}function I(e,t,n){let r,o;if(n===void 0){let u=i(t)[Symbol.iterator]();o=u.next().value,r=u}else o=t,r=i(n);if(o instanceof v)return o.value;for(const u of r)if(o=e(o,u),o instanceof v){o=o.value;break}return o}class Y{constructor(t){this.gen=t}[Symbol.iterator](){return this.gen()}}Y.prototype[L]=!0;function c(e){return new Y(e)}function ue(e,t){return c(function*(){yield e,yield*i(t)})}function A(e,...t){switch(t.length){case 0:throw new Error("map with 2 arguments is not supported yet");case 1:return c(function*(){for(const n of i(t[0]))yield e(n)});default:return c(function*(){const n=t.map(r=>G(i(r)));for(;;){let r=[];for(const o of n){const u=o.next();if(u.done)return;r.push(u.value)}yield e(...r)}})}}function q(e,t){return c(function*(){for(const n of i(t))e(n)&&(yield n)})}function rt(e,t){return[...q(e,t)]}function ot(e,t){return q(xe(e),t)}function ut(e,t){let n=[],r=0;for(const o of i(t))n.push(e(r,o)),r++;return n}function it(e,t){let n=[],r=0;for(const o of i(t)){let u=e(r,o);u&&n.push(u),r++}return n}function ft(...e){return e.join("")}function ie(e){return!e}function ct(e){return e==null}const st={};function lt(e){return JSON.stringify(e,(t,n)=>{switch(s(n)){case d:case K:return[...n];case p:return Object.fromEntries(n);default:return n}})}function fe(...e){return e.map(lt).join(" ")}function at(...e){te(fe(...e))}function ce(e){this.val=e,this._watches={},this._deref=()=>this.val,this._hasWatches=!1,this._reset_BANG_=t=>{let n=this.val;if(this.val=t,this._hasWatches)for(let r of Object.entries(this._watches)){let o=r[0],u=r[1];u(o,this,n,t)}return t},this._add_watch=(t,n)=>{this._watches[t]=n,this._hasWatches=!0},this._remove_watch=t=>{delete this._watches[t]}}function pt(e){return new ce(e)}function se(e){return e._deref()}function le(e,t){e._reset_BANG_(t)}function xt(e,t,...n){const r=t(se(e),...n);return le(e,r),r}function _t(e,t,n){return c(function*(){let r=e,o=t,u=n;t===void 0&&(r=0,o=e);let f=r||0;for(u=n||1;o===void 0||f<o;)yield f,f+=u})}function dt(e,t){let n=e.exec(t);if(n&&t===n[0])return n.length===1?n[0]:n}function ht(e,t,n){return e.slice(t,n)}function z(...e){return e}function yt(e){return s(e)===x}function ae(...e){return[...A(...e)]}function g(e){return[...i(e)]}function wt(e){return new Set(i(e))}function mt(e,...t){const n=t.slice(0,t.length-1),r=t[t.length-1];return e(...n,...r)}function pe(e){return e%2==0}function bt(e){return!pe(e)}function xe(e){return(...t)=>ie(e(...t))}function At(e){return(...t)=>e}class S extends Array{constructor(...t){super(),this.push(...t)}}function gt(e){return s(e)===w}function Mt(...e){return new S(...e)}function vt(e){return e instanceof Array}function _e(...e){return c(function*(){for(const t of e)yield*i(t)})}function Rt(e,...t){return _e(...A(e,...t))}function de(e){return e}function he(...e){return c(function*(){const t=e.map(n=>G(i(n)));for(;;){let n=[];for(const r of t){const o=r.next();if(o.done)return;n.push(o.value)}yield*n}})}function Et(e,t){return O(1,he(C(e),t))}function Kt(e,t){const n=s(e),r=T(n);for(const o of t){const u=h(e,o);u!=null&&b(r,o,u)}return r}function Qt(e,...t){let n=e,r=t[0];return t.length===2&&([n,r]=t),ye(e,n,[],r,!0)}function St(e,...t){let n=e,r=[],o=t[0];return t.length===2?[n,o]=t:t.length>2&&([n,r,o]=t),ye(e,n,r,o,!1)}function ye(e,t,n,r,o){return c(function*(){let u=[],f=0;for(let a of i(r))f<e&&(u.push(a),u.length===e&&(yield u,u=t<e?u.slice(t):[])),f++,f===t&&(f=0);u.length>0&&(u.length===e||o?yield u:n.length&&(u.push(...n.slice(0,e-u.length)),yield u))})}function we(e){const t=s(e);if(t!=null)return T(t);throw new Error(`Can't create empty of ${typeof e}`)}function jt(...e){const t=e[0];let n;return t==null?n={}:n=Ae(we(t),t),B(n,...e.slice(1))}function me(e){return e[0]}function be(e){return e[1]}function Ot(e,...t){var n=!1;for(const r of t)if(r!=null){n=!0;break}if(n){let r=(u,f)=>{let a=me(f),l=be(f);return X(u,a)?m(u,a,e(h(u,a),l)):m(u,a,l)};return I((u,f)=>I(r,u||{},P(f)),t)}else return null}function kt(){return performance.now()}function Ae(...e){switch(e.length){case 0:return[];case 1:return e[0];default:return F(e[0]??[],...i(e[1]))}}function It(e,t){return e===t}function C(...e){if(e.length==0||e.length>2)throw new Error(`Invalid arity: ${e.length}`);return{[L]:!0,[oe]:e.length==1?function*(){let t=e[0];for(;;)yield t}:function*(){let[t,n]=e;for(var r=0;r<t;r++)yield n}}}function j(e,t){return c(function*(){let n=e-1;for(const r of i(t))if(n-->=0&&(yield r),n<0)return})}function ge(e,t){return c(function*(){for(const n of i(t))if(e(n))yield n;else return})}function Nt(e,t){return e<=0?C(M(t)):c(function*(){let n=0;for(let r of i(t))n%e===0&&(yield r),n++})}function Tt(e,...t){return function(...n){return e(...t,...n)}}function Bt(e){return c(function*(){for(;;)yield*e})}function O(e,t){return c(function*(){let n=Q(i(t));for(let r=0;r<e;r++)n.next();yield*n})}function Me(e,t){return c(function*(){let n=Q(i(t));for(;;){let r=n.next();if(r.done)break;let o=r.value;if(!e(o)){yield o;break}}yield*n})}function Lt(e){return c(function*(){let t=new Set;for(const n of i(e))t.has(n)||(yield n),t.add(n)})}function Gt(e,t,n,...r){return m(e,t,n(h(e,t),...r))}function ve(e,t,n){let r=e;for(const o of t)r=h(r,o);return r===void 0?n:r}function Pt(e,t,n,...r){return Z(e,t,n(ve(e,t),...r))}function $(e,t,...n){return function(r,...o){return r?e(r,...n,...o):e(t,...n,...o)}}function Re(e,t){for(let n of i(t))if(!e(n))return!1;return!0}function Yt(e,t){return!Re(e,t)}function qt(e,t){return c(function*(){for(const n of i(t)){const r=e(n);r&&(yield r)}})}function zt(e){return e instanceof Array?e.reverse():[...e].reverse()}function Ct(e,t){return t===void 0&&(t=e,e=void 0),[...t].sort(e)}function $t(e){return[...e].sort(function(t,n){return Math.random()-.5})}function Ee(e,t){for(const n of i(t)){const r=e(n);if(r)return r}}function Vt(e,t){return!Ee(e,t)}function Wt(e,t){return(t instanceof Array?ae:A)(r=>{const o=e[r];return o!==void 0?o:r},t)}function Jt(e){return!P(e)}function Ke(e){return Math.floor(Math.random()*e)}function Dt(e){let t=Ke(R(e));return ne(e,t)}function Ut(e){return c(function*(){for(;;)yield e()})}function Zt(e,t){t===void 0&&(t=e,e=void 0);const n=Ut(t);return e?j(e,n):n}function V(e,t,n,...r){const o=h(e,t);return b(e,t,n(o,...r))}function Ft(e,t){const n={};for(const r of i(t)){const o=e(r);V(n,o,$(B,[]),r)}return n}function Ht(e){const t={},n=$(ee,0);for(const r of i(e))V(t,r,n);return t}class Xt{constructor(t){this.f=t}*[Symbol.iterator](){yield*i(this.f())}}function en(e){let t=[...i(e)];return t.pop(),t.length>0?t:null}function tn(...e){let[t,n]=e.length>1?e:[1,e[0]];return A((r,o)=>r,n,O(t,n))}function nn(e,t){return[j(e,t),O(e,t)]}function rn(e,t){return[ge(e,t),Me(e,t)]}function R(e){if(!e)return 0;const t=e.length||e.size;if(typeof t=="number")return t;let n=0;for(const r of i(e))n++;return n}function on(e){return e===!0}function un(e){return e===!1}function fn(e){return e!=null}function cn(e){return!!e}function sn(e){return e===0}function ln(e){return e<0}function an(e){return e>0}function pn(...e){var t=0;let n={};for(;!(t>=e.length);)n[e[t]]=e[t+1],t=t+2;return n}function xn(e){return e.length}function _n(e,t,n){return e[t]=n,n}function dn(e){for(const t of i(e));return null}function hn(e){return g(e)}function yn(e){return[...e]}function wn(e,t,n){return e._add_watch(t,n)}function mn(e,t){return e._remove_watch(t)}function bn(e,t,n){if(!n)return t;var r=t;for(let o of Object.entries(n))r=e(r,o[0],o[1]);return r}function E(e,t,...n){return t==null?e:n.length==0?e>t?e:t:E(E(e,t),...n)}function N(e,t,...n){return t==null?e:n.length==0?e<t?e:t:N(N(e,t),...n)}function An(e){return e instanceof Object}function gn(...e){return(...t)=>{for(let n of e)for(let r of t)if(!n(r))return!1;return!0}}function Mn(...e){return(...t)=>{for(let n of e)for(let r of t){let o=n(r);if(o)return o}}}function Qe(e,t){return g(t||e)}function vn(e,t){var n=t;return c(function*(){for(;;)yield n,n=e(n)})}function Rn(...e){return(...t)=>{let n=[];for(let r of e)n.push(r(...t));return n}}function Se(e){if(e instanceof Array){let t=e.slice(1);return t.length>0?t:null}else return Se(g(e))}function En(e,t){if(e===t)return 0;if(e==null)return-1;if(t==null)return 1;if(typeof e=="number"){if(typeof t=="number")return e===t?0:e<t?-1:1;throw new Error("comparing number to other type")}else throw new Error("comparing number to other type")}function Kn(e){return Qe(e)}function je(e,t,n){return e.substring(t,n)}function Qn(e){return typeof e=="function"}function*Oe(e,t){let n=e.exec(t);if(n){let r=n[0],o=n.length===1?r:g(n);yield*ue(o,c(function*(){let u=n.index+E(1,r.length);u<=t.length&&(yield*Oe(e,je(t,u)))}))}}function Sn(e){return Number.isNaN(e)}function jn(e){return typeof e=="number"}function ke(e){return e?Object.keys(e):null}function On(e){return ke(e)}function kn(e){return e?Object.values(e):null}function In(e){return typeof e=="string"}function Nn(e){return s(e)!=null}function Tn(e){return e instanceof RegExp}class W extends Error{constructor(t,n,r){super(t),this._data=n,this._cause=r}}function Bn(e){return e instanceof W?e._data:null}function Ln(e){return e instanceof Error?e.message:null}function Gn(e){return e instanceof W?e._cause:null}function Pn(e,t,n){return new W(e,t,n)}function Ie(e){return Number.isInteger(e)}const Yn=Ie,Ne=Symbol("meta");function qn(e){return e instanceof Object?e[Ne]:null}function zn(e,t){let n=D(e);return n[Ne]=t,n}function Cn(e){return e===!0||e===!1}function Te(e){switch(s(e)){case d:return!0}return!1}function $n(e,t){return Te(t)?R(t):R(j(e,t))}function Vn(e,t){let n=h(e,t);if(n!==void 0)return[t,n]}return qe(Wn);})();
|
|
1
|
+
var squint;(squint||={}).core=(()=>{var I=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var Pe=Object.prototype.hasOwnProperty;var ze=(e,t)=>{for(var n in t)I(e,n,{get:t[n],enumerable:!0})},Ye=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Le(t))!Pe.call(e,o)&&o!==n&&I(e,o,{get:()=>t[o],enumerable:!(r=Ge(t,o))||r.enumerable});return e};var qe=e=>Ye(I({},"__esModule",{value:!0}),e);var Hn={};ze(Hn,{Atom:()=>ce,Cons:()=>oe,IIterable:()=>B,IIterable__iterator:()=>ne,LazySeq:()=>rn,NaN_QMARK_:()=>kn,PROTOCOL_SENTINEL:()=>xt,_:()=>$e,_PLUS_:()=>Ce,_iterator:()=>Q,aclone:()=>bn,add_watch:()=>An,alength:()=>yn,apply:()=>vt,array_QMARK_:()=>Qt,aset:()=>wn,assoc:()=>g,assoc_BANG_:()=>w,assoc_in:()=>D,assoc_in_BANG_:()=>De,atom:()=>ht,boolean$:()=>pn,boolean_QMARK_:()=>Dn,bounded_count:()=>Un,butlast:()=>on,coll_QMARK_:()=>Pn,comp:()=>Ue,compare:()=>On,complement:()=>xe,concat:()=>de,conj:()=>U,conj_BANG_:()=>T,cons:()=>ue,constantly:()=>Rt,contains_QMARK_:()=>F,count:()=>R,counted_QMARK_:()=>Be,cycle:()=>zt,dec:()=>Xe,deref:()=>se,disj:()=>Ze,disj_BANG_:()=>Z,dissoc:()=>He,dissoc_BANG_:()=>Fe,distinct:()=>Yt,doall:()=>gn,dorun:()=>mn,drop:()=>O,drop_last:()=>un,drop_while:()=>ve,empty:()=>we,empty_QMARK_:()=>Ft,es6_iterator:()=>G,even_QMARK_:()=>pe,every_QMARK_:()=>Re,every_pred:()=>Kn,ex_cause:()=>Cn,ex_data:()=>Yn,ex_info:()=>$n,ex_message:()=>qn,false_QMARK_:()=>ln,ffirst:()=>tt,filter:()=>z,filterv:()=>ft,find:()=>Zn,first:()=>v,fn_QMARK_:()=>Nn,fnil:()=>C,frequencies:()=>nn,get:()=>h,get_in:()=>Me,group_by:()=>tn,identical_QMARK_:()=>Gt,identity:()=>_e,inc:()=>H,int_QMARK_:()=>ke,integer_QMARK_:()=>Vn,interleave:()=>he,interpose:()=>jt,into:()=>be,into_array:()=>Se,iterable:()=>i,iterate:()=>Sn,js_keys:()=>Bn,js_obj:()=>hn,juxt:()=>jn,keep:()=>Vt,keep_indexed:()=>lt,key:()=>me,keys:()=>Ne,last:()=>rt,lazy:()=>c,list:()=>Kt,list_QMARK_:()=>Et,map:()=>b,map_QMARK_:()=>En,map_indexed:()=>st,mapcat:()=>St,mapv:()=>ae,max:()=>Qe,merge:()=>kt,merge_with:()=>Tt,meta:()=>Wn,min:()=>Rn,mod:()=>Fn,neg_QMARK_:()=>dn,next:()=>je,nil_QMARK_:()=>pt,not:()=>ie,not_any_QMARK_:()=>Ut,not_every_QMARK_:()=>$t,nth:()=>ee,number_QMARK_:()=>Tn,object_QMARK_:()=>We,odd_QMARK_:()=>Mt,partial:()=>Pt,partition:()=>Nt,partition_all:()=>It,pos_QMARK_:()=>_n,pr_str:()=>fe,println:()=>X,prn:()=>_t,rand_int:()=>Ke,rand_nth:()=>Ht,range:()=>wt,re_matches:()=>mt,re_seq:()=>Ie,reduce:()=>N,reduce_kv:()=>Mn,reduced:()=>ot,reduced_QMARK_:()=>ut,regexp_QMARK_:()=>zn,remove:()=>ct,remove_watch:()=>vn,repeat:()=>q,repeatedly:()=>en,replace:()=>Zt,reset_BANG_:()=>le,rest:()=>nt,reverse:()=>Wt,satisfies_QMARK_:()=>Ve,second:()=>et,select_keys:()=>Ot,seq:()=>L,seqable_QMARK_:()=>te,set:()=>At,shuffle:()=>Dt,some:()=>Ee,some_QMARK_:()=>an,some_fn:()=>Qn,sort:()=>Jt,split_at:()=>fn,split_with:()=>cn,str:()=>at,string_QMARK_:()=>Ln,subs:()=>Oe,subvec:()=>gt,swap_BANG_:()=>yt,system_time:()=>Bt,take:()=>j,take_nth:()=>Lt,take_while:()=>Ae,to_array:()=>In,true_QMARK_:()=>sn,update:()=>qt,update_BANG_:()=>$,update_in:()=>Ct,val:()=>ge,vals:()=>Gn,vec:()=>A,vector:()=>Y,vector_QMARK_:()=>bt,warn_on_lazy_reusage_BANG_:()=>it,with_meta:()=>Jn,zero_QMARK_:()=>xn});function Ce(...e){return e.reduce((t,n)=>t+n,0)}function $e(...e){return e.reduce((t,n)=>t-n)}function Ve(e,t){return t[e]}function w(e,t,n,...r){if(r.length%2!==0)throw new Error("Illegal argument: assoc expects an odd number of arguments.");switch(s(e)){case p:e.set(t,n);for(let o=0;o<r.length;o+=2)e.set(r[o],r[o+1]);break;case x:case d:e[t]=n;for(let o=0;o<r.length;o+=2)e[r[o]]=r[o+1];break;default:throw new Error("Illegal argument: assoc! expects a Map, Array, or Object as the first argument.")}return e}function J(e){switch(s(e)){case p:return new Map(e.entries());case x:return[...e];case d:return{...e};default:throw new Error(`Don't know how to copy object of type ${typeof e}.`)}}function g(e,t,n,...r){e||(e={});let o=J(e);return w(o,t,n,...r),o}const p=1,x=2,d=3,m=4,_=5,E=6;function K(e){switch(e){case p:return new Map;case x:return[];case d:return{};case m:return new S;case _:return new Set;case E:return c(function*(){})}}function k(e){return e.constructor===Object}function We(e){return e!=null&&k(e)}function s(e){if(e!=null){if(k(e))return d;if(e instanceof Map)return p;if(e instanceof Set)return _;if(e instanceof S)return m;if(e instanceof Array)return x;if(e instanceof P)return E;if(e instanceof Object)return d}}function Je(e,t,n,r,o){let u=s(n);if(u!==p&&u!==x&&u!==d)throw new Error(`Illegal argument: ${t} expects the first argument to be a Map, Array, or Object.`);const f=[n];let a=n;for(let l=0;l<r.length-1;l+=1){let W=r[l],y;a instanceof Map?y=a.get(W):y=a[W],y||(y=K(u)),f.push(y),a=y}f.push(o);for(let l=f.length-2;l>=0;l-=1)f[l]=e(f[l],r[l],f[l+1]);return f[0]}function D(e,t,n){return Je(g,"assoc-in",e,t,n)}function De(e,t,n){var r=e;let o=s(e);for(const u of t.splice(0,t.length-1)){let f=h(r,u);f===void 0&&(f=K(o),w(r,u,f)),r=f}return w(r,t[t.length-1],n),e}function Ue(...e){if(e.length===0)return _e;if(e.length===1)return e[0];let[t,...n]=e.slice().reverse();return function(...r){let o=t(...r);for(const u of n)o=u(o);return o}}function T(...e){if(e.length===0)return Y();let[t,...n]=e;switch(t==null&&(t=[]),s(t)){case _:for(const r of n)t.add(r);break;case m:t.unshift(...n.reverse());break;case x:t.push(...n);break;case p:for(const r of n)r instanceof Array?t.set(r[0],r[1]):i(r).forEach(o=>{t.set(o[0],o[1])});break;case d:for(const r of n)r instanceof Array?t[r[0]]=r[1]:Object.assign(t,r);break;default:throw new Error("Illegal argument: conj! expects a Set, Array, List, Map, or Object as the first argument.")}return t}function U(...e){if(e.length===0)return Y();let[t,...n]=e;switch(t==null&&(t=[]),s(t)){case _:return new Set([...t,...n]);case m:return new S(...n.reverse(),...t);case x:return[...t,...n];case p:const r=new Map(t);for(const u of n)u instanceof Array?r.set(u[0],u[1]):i(u).forEach(f=>{r.set(f[0],f[1])});return r;case E:return c(function*(){yield*n,yield*t});case d:const o={...t};for(const u of n)u instanceof Array?o[u[0]]=u[1]:Object.assign(o,u);return o;default:throw new Error("Illegal argument: conj expects a Set, Array, List, Map, or Object as the first argument.")}}function Z(e,...t){for(const n of t)e.delete(n);return e}function Ze(e,...t){let n=new Set([...e]);return Z(n,...t)}function F(e,t){switch(s(e)){case _:case p:return e.has(t);case void 0:return!1;default:return t in e}}function Fe(e,...t){for(const n of t)delete e[n];return e}function He(e,...t){let n={...e};for(const r of t)delete n[r];return n}function H(e){return e+1}function Xe(e){return e-1}function X(...e){console.log(...e)}function ee(e,t,n){if(e){var r=void 0;if(e instanceof Array)r=e[t];else{let o=i(e),u=0;for(let f of o)if(u++==t){r=f;break}}if(r!==void 0)return r}return n}function h(e,t,n=void 0){if(e==null)return n;let r;if(k(e))return r=e[t],r===void 0?n:r;switch(s(e)){case _:e.has(t)&&(r=t);break;case p:r=e.get(t);break;case void 0:break;default:r=e[t];break}return r!==void 0?r:n}function te(e){return typeof e=="string"||e===null||e===void 0||e instanceof Object&&Symbol.iterator in e}function i(e){return e==null?[]:te(e)?e:Object.entries(e)}const B=Symbol("Iterable"),ne=Symbol.iterator;function Q(e){return e[Symbol.iterator]()}const G=Q;function L(e){let t=i(e);return t.length===0||t.size===0?null:t}function v(e){let[t]=i(e);return t}function et(e){let[t,n]=i(e);return n}function tt(e){return v(v(e))}function nt(e){return c(function*(){let t=!0;for(const n of i(e))t?t=!1:yield n})}class M{value;constructor(t){this.value=t}_deref(){return this.value}}function rt(e){switch(e=i(e),s(e)){case x:return e[e.length-1];default:let t;for(const n of e)t=n;return t}}function ot(e){return new M(e)}function ut(e){return e instanceof M}function N(e,t,n){let r,o;if(n===void 0){let u=i(t)[Symbol.iterator]();o=u.next().value,r=u}else o=t,r=i(n);if(o instanceof M)return o.value;for(const u of r)if(o=e(o,u),o instanceof M){o=o.value;break}return o}var re=!1;function it(){re=!0}class P{constructor(t){this.gen=t,this.usages=0}[Symbol.iterator](){if(this.usages++,this.usages>=2&&re)try{throw new Error}catch(t){console.warn("Re-use of lazy value",t.stack)}return this.gen()}}P.prototype[B]=!0;function c(e){return new P(e)}class oe{constructor(t,n){this.x=t,this.coll=n}*[Symbol.iterator](){yield this.x,yield*i(this.coll)}}function ue(e,t){return new oe(e,t)}function b(e,...t){switch(t.length){case 0:throw new Error("map with 2 arguments is not supported yet");case 1:return c(function*(){for(const n of i(t[0]))yield e(n)});default:return c(function*(){const n=t.map(r=>G(i(r)));for(;;){let r=[];for(const o of n){const u=o.next();if(u.done)return;r.push(u.value)}yield e(...r)}})}}function z(e,t){return c(function*(){for(const n of i(t))e(n)&&(yield n)})}function ft(e,t){return[...z(e,t)]}function ct(e,t){return z(xe(e),t)}function st(e,t){let n=[],r=0;for(const o of i(t))n.push(e(r,o)),r++;return n}function lt(e,t){let n=[],r=0;for(const o of i(t)){let u=e(r,o);u&&n.push(u),r++}return n}function at(...e){return e.join("")}function ie(e){return!e}function pt(e){return e==null}const xt={};function dt(e){return JSON.stringify(e,(t,n)=>{switch(s(n)){case _:case E:return[...n];case p:return Object.fromEntries(n);default:return n}})}function fe(...e){return e.map(dt).join(" ")}function _t(...e){X(fe(...e))}function ce(e){this.val=e,this._watches={},this._deref=()=>this.val,this._hasWatches=!1,this._reset_BANG_=t=>{let n=this.val;if(this.val=t,this._hasWatches)for(let r of Object.entries(this._watches)){let o=r[0],u=r[1];u(o,this,n,t)}return t},this._add_watch=(t,n)=>{this._watches[t]=n,this._hasWatches=!0},this._remove_watch=t=>{delete this._watches[t]}}function ht(e){return new ce(e)}function se(e){return e._deref()}function le(e,t){e._reset_BANG_(t)}function yt(e,t,...n){const r=t(se(e),...n);return le(e,r),r}function wt(e,t,n){return c(function*(){let r=e,o=t,u=n;t===void 0&&(r=0,o=e);let f=r||0;for(u=n||1;o===void 0||f<o;)yield f,f+=u})}function mt(e,t){let n=e.exec(t);if(n&&t===n[0])return n.length===1?n[0]:n}function gt(e,t,n){return e.slice(t,n)}function Y(...e){return e}function bt(e){return s(e)===x}function ae(...e){return[...b(...e)]}function A(e){return[...i(e)]}function At(e){return new Set(i(e))}function vt(e,...t){const n=t.slice(0,t.length-1),r=t[t.length-1];return e(...n,...r)}function pe(e){return e%2==0}function Mt(e){return!pe(e)}function xe(e){return(...t)=>ie(e(...t))}function Rt(e){return(...t)=>e}class S extends Array{constructor(...t){super(),this.push(...t)}}function Et(e){return s(e)===m}function Kt(...e){return new S(...e)}function Qt(e){return e instanceof Array}function de(...e){return c(function*(){for(const t of e)yield*i(t)})}function St(e,...t){return de(...b(e,...t))}function _e(e){return e}function he(...e){return c(function*(){const t=e.map(n=>G(i(n)));for(;;){let n=[];for(const r of t){const o=r.next();if(o.done)return;n.push(o.value)}yield*n}})}function jt(e,t){return O(1,he(q(e),t))}function Ot(e,t){const n=s(e),r=K(n);for(const o of t){const u=h(e,o);u!=null&&w(r,o,u)}return r}function It(e,...t){let n=e,r=t[0];return t.length===2&&([n,r]=t),ye(e,n,[],r,!0)}function Nt(e,...t){let n=e,r=[],o=t[0];return t.length===2?[n,o]=t:t.length>2&&([n,r,o]=t),ye(e,n,r,o,!1)}function ye(e,t,n,r,o){return c(function*(){let u=[],f=0;for(let a of i(r))f<e&&(u.push(a),u.length===e&&(yield u,u=t<e?u.slice(t):[])),f++,f===t&&(f=0);u.length>0&&(u.length===e||o?yield u:n.length&&(u.push(...n.slice(0,e-u.length)),yield u))})}function we(e){const t=s(e);if(t!=null)return K(t);throw new Error(`Can't create empty of ${typeof e}`)}function kt(...e){const t=e[0];let n;return t==null?n={}:n=be(we(t),t),T(n,...e.slice(1))}function me(e){return e[0]}function ge(e){return e[1]}function Tt(e,...t){var n=!1;for(const r of t)if(r!=null){n=!0;break}if(n){let r=(u,f)=>{let a=me(f),l=ge(f);return F(u,a)?g(u,a,e(h(u,a),l)):g(u,a,l)};return N((u,f)=>N(r,u||{},L(f)),t)}else return null}function Bt(){return performance.now()}function be(...e){switch(e.length){case 0:return[];case 1:return e[0];default:return U(e[0]??[],...i(e[1]))}}function Gt(e,t){return e===t}function q(...e){if(e.length==0||e.length>2)throw new Error(`Invalid arity: ${e.length}`);return{[B]:!0,[ne]:e.length==1?function*(){let t=e[0];for(;;)yield t}:function*(){let[t,n]=e;for(var r=0;r<t;r++)yield n}}}function j(e,t){return c(function*(){let n=e-1;for(const r of i(t))if(n-->=0&&(yield r),n<0)return})}function Ae(e,t){return c(function*(){for(const n of i(t))if(e(n))yield n;else return})}function Lt(e,t){return e<=0?q(v(t)):c(function*(){let n=0;for(let r of i(t))n%e===0&&(yield r),n++})}function Pt(e,...t){return function(...n){return e(...t,...n)}}function zt(e){return c(function*(){for(;;)yield*e})}function O(e,t){return c(function*(){let n=Q(i(t));for(let r=0;r<e;r++)n.next();yield*n})}function ve(e,t){return c(function*(){let n=Q(i(t));for(;;){let r=n.next();if(r.done)break;let o=r.value;if(!e(o)){yield o;break}}yield*n})}function Yt(e){return c(function*(){let t=new Set;for(const n of i(e))t.has(n)||(yield n),t.add(n)})}function qt(e,t,n,...r){return g(e,t,n(h(e,t),...r))}function Me(e,t,n){let r=e;for(const o of t)r=h(r,o);return r===void 0?n:r}function Ct(e,t,n,...r){return D(e,t,n(Me(e,t),...r))}function C(e,t,...n){return function(r,...o){return r?e(r,...n,...o):e(t,...n,...o)}}function Re(e,t){for(let n of i(t))if(!e(n))return!1;return!0}function $t(e,t){return!Re(e,t)}function Vt(e,t){return c(function*(){for(const n of i(t)){const r=e(n);r&&(yield r)}})}function Wt(e){return e instanceof Array?e.reverse():[...e].reverse()}function Jt(e,t){return t===void 0&&(t=e,e=void 0),[...t].sort(e)}function Dt(e){return[...e].sort(function(t,n){return Math.random()-.5})}function Ee(e,t){for(const n of i(t)){const r=e(n);if(r)return r}}function Ut(e,t){return!Ee(e,t)}function Zt(e,t){return(t instanceof Array?ae:b)(r=>{const o=e[r];return o!==void 0?o:r},t)}function Ft(e){return!L(e)}function Ke(e){return Math.floor(Math.random()*e)}function Ht(e){let t=Ke(R(e));return ee(e,t)}function Xt(e){return c(function*(){for(;;)yield e()})}function en(e,t){t===void 0&&(t=e,e=void 0);const n=Xt(t);return e?j(e,n):n}function $(e,t,n,...r){const o=h(e,t);return w(e,t,n(o,...r))}function tn(e,t){const n={};for(const r of i(t)){const o=e(r);$(n,o,C(T,[]),r)}return n}function nn(e){const t={},n=C(H,0);for(const r of i(e))$(t,r,n);return t}class rn{constructor(t){this.f=t,this.res=void 0}*[Symbol.iterator](){this.res===void 0&&(this.res=this.f(),this.f=null),yield*i(this.res)}}function on(e){let t=[...i(e)];return t.pop(),t.length>0?t:null}function un(...e){let[t,n]=e.length>1?e:[1,e[0]];return b((r,o)=>r,n,O(t,n))}function fn(e,t){return[j(e,t),O(e,t)]}function cn(e,t){return[Ae(e,t),ve(e,t)]}function R(e){if(!e)return 0;const t=e.length||e.size;if(typeof t=="number")return t;let n=0;for(const r of i(e))n++;return n}function sn(e){return e===!0}function ln(e){return e===!1}function an(e){return e!=null}function pn(e){return!!e}function xn(e){return e===0}function dn(e){return e<0}function _n(e){return e>0}function hn(...e){var t=0;let n={};for(;!(t>=e.length);)n[e[t]]=e[t+1],t=t+2;return n}function yn(e){return e.length}function wn(e,t,n){return e[t]=n,n}function mn(e){for(const t of i(e));return null}function gn(e){return A(e)}function bn(e){return[...e]}function An(e,t,n){return e._add_watch(t,n)}function vn(e,t){return e._remove_watch(t)}function Mn(e,t,n){if(!n)return t;var r=t;for(let o of Object.entries(n))r=e(r,o[0],o[1]);return r}function Qe(e,t,...n){if(t==null)return e;let r=e>t?e:t;return n.length==0?r:n.reduce((o,u)=>o>u?o:u,r)}function Rn(e,t,...n){if(t==null)return e;let r=e<t?e:t;return n.length==0?r:n.reduce((o,u)=>o<u?o:u,r)}function En(e){return e instanceof Object}function Kn(...e){return(...t)=>{for(let n of e)for(let r of t)if(!n(r))return!1;return!0}}function Qn(...e){return(...t)=>{for(let n of e)for(let r of t){let o=n(r);if(o)return o}}}function Se(e,t){return A(t||e)}function Sn(e,t){var n=t;return c(function*(){for(;;)yield n,n=e(n)})}function jn(...e){return(...t)=>{let n=[];for(let r of e)n.push(r(...t));return n}}function je(e){if(e instanceof Array){let t=e.slice(1);return t.length>0?t:null}else return je(A(e))}function On(e,t){if(e===t)return 0;if(e==null)return-1;if(t==null)return 1;if(typeof e=="number"){if(typeof t=="number")return e===t?0:e<t?-1:1;throw new Error("comparing number to other type")}else throw new Error("comparing number to other type")}function In(e){return Se(e)}function Oe(e,t,n){return e.substring(t,n)}function Nn(e){return typeof e=="function"}function*Ie(e,t){let n=e.exec(t);if(n){let r=n[0],o=n.length===1?r:A(n);yield*ue(o,c(function*(){let u=n.index+Qe(1,r.length);u<=t.length&&(yield*Ie(e,Oe(t,u)))}))}}function kn(e){return Number.isNaN(e)}function Tn(e){return typeof e=="number"}function Ne(e){return e?Object.keys(e):null}function Bn(e){return Ne(e)}function Gn(e){return e?Object.values(e):null}function Ln(e){return typeof e=="string"}function Pn(e){return s(e)!=null}function zn(e){return e instanceof RegExp}class V extends Error{constructor(t,n,r){super(t),this._data=n,this._cause=r}}function Yn(e){return e instanceof V?e._data:null}function qn(e){return e instanceof Error?e.message:null}function Cn(e){return e instanceof V?e._cause:null}function $n(e,t,n){return new V(e,t,n)}function ke(e){return Number.isInteger(e)}const Vn=ke,Te=Symbol("meta");function Wn(e){return e instanceof Object?e[Te]:null}function Jn(e,t){let n=J(e);return n[Te]=t,n}function Dn(e){return e===!0||e===!1}function Be(e){switch(s(e)){case _:return!0}return!1}function Un(e,t){return Be(t)?R(t):R(j(e,t))}function Zn(e,t){let n=h(e,t);if(n!==void 0)return[t,n]}function Fn(e,t){return(e%t+t)%t}return qe(Hn);})();
|
package/package.json
CHANGED
package/src/squint/core.js
CHANGED
|
@@ -90,7 +90,22 @@ function emptyOfType(type) {
|
|
|
90
90
|
return undefined;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
function isObj(coll) {
|
|
94
|
+
return (coll.constructor === Object);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function object_QMARK_(coll) {
|
|
98
|
+
return (coll != null && isObj(coll));
|
|
99
|
+
}
|
|
100
|
+
|
|
93
101
|
function typeConst(obj) {
|
|
102
|
+
if (obj == null) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
// optimize for object
|
|
106
|
+
if (isObj(obj)) {
|
|
107
|
+
return OBJECT_TYPE;
|
|
108
|
+
}
|
|
94
109
|
if (obj instanceof Map) return MAP_TYPE;
|
|
95
110
|
if (obj instanceof Set) return SET_TYPE;
|
|
96
111
|
if (obj instanceof List) return LIST_TYPE;
|
|
@@ -136,7 +151,18 @@ export function assoc_in(o, keys, value) {
|
|
|
136
151
|
}
|
|
137
152
|
|
|
138
153
|
export function assoc_in_BANG_(o, keys, value) {
|
|
139
|
-
|
|
154
|
+
var currObj = o;
|
|
155
|
+
let baseType = typeConst(o);
|
|
156
|
+
for (const k of keys.splice(0,keys.length - 1)) {
|
|
157
|
+
let v = get(currObj, k);
|
|
158
|
+
if (v === undefined) {
|
|
159
|
+
v = emptyOfType(baseType);
|
|
160
|
+
assoc_BANG_(currObj, k, v);
|
|
161
|
+
}
|
|
162
|
+
currObj = v;
|
|
163
|
+
}
|
|
164
|
+
assoc_BANG_(currObj, keys[keys.length - 1], value);
|
|
165
|
+
return o;
|
|
140
166
|
}
|
|
141
167
|
|
|
142
168
|
export function comp(...fs) {
|
|
@@ -330,7 +356,19 @@ export function nth(coll, idx, orElse) {
|
|
|
330
356
|
}
|
|
331
357
|
|
|
332
358
|
export function get(coll, key, otherwise = undefined) {
|
|
359
|
+
if (coll == null) {
|
|
360
|
+
return otherwise;
|
|
361
|
+
}
|
|
333
362
|
let v;
|
|
363
|
+
// optimize for getting values out of objects
|
|
364
|
+
if (isObj(coll)) {
|
|
365
|
+
v = coll[key];
|
|
366
|
+
if (v === undefined) {
|
|
367
|
+
return otherwise;
|
|
368
|
+
} else {
|
|
369
|
+
return v;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
334
372
|
switch (typeConst(coll)) {
|
|
335
373
|
case SET_TYPE:
|
|
336
374
|
if (coll.has(key)) v = key;
|
|
@@ -469,11 +507,26 @@ export function reduce(f, arg1, arg2) {
|
|
|
469
507
|
return val;
|
|
470
508
|
}
|
|
471
509
|
|
|
510
|
+
var tolr = false;
|
|
511
|
+
export function warn_on_lazy_reusage_BANG_() {
|
|
512
|
+
tolr = true;
|
|
513
|
+
}
|
|
514
|
+
|
|
472
515
|
class LazyIterable {
|
|
473
516
|
constructor(gen) {
|
|
474
517
|
this.gen = gen;
|
|
518
|
+
this.usages = 0;
|
|
475
519
|
}
|
|
476
520
|
[Symbol.iterator]() {
|
|
521
|
+
this.usages++;
|
|
522
|
+
if (this.usages >= 2 && tolr) {
|
|
523
|
+
try {
|
|
524
|
+
throw new Error();
|
|
525
|
+
}
|
|
526
|
+
catch (e) {
|
|
527
|
+
console.warn('Re-use of lazy value', e.stack);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
477
530
|
return this.gen();
|
|
478
531
|
}
|
|
479
532
|
}
|
|
@@ -484,11 +537,24 @@ export function lazy(f) {
|
|
|
484
537
|
return new LazyIterable(f);
|
|
485
538
|
}
|
|
486
539
|
|
|
540
|
+
|
|
541
|
+
export class Cons {
|
|
542
|
+
constructor(x, coll) {
|
|
543
|
+
this.x = x;
|
|
544
|
+
this.coll = coll;
|
|
545
|
+
}
|
|
546
|
+
*[Symbol.iterator]() {
|
|
547
|
+
yield this.x;
|
|
548
|
+
yield* iterable(this.coll);
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
|
|
487
552
|
export function cons(x, coll) {
|
|
488
|
-
return
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
553
|
+
return new Cons(x, coll);
|
|
554
|
+
// return lazy(function* () {
|
|
555
|
+
// yield x;
|
|
556
|
+
// yield* iterable(coll);
|
|
557
|
+
// });
|
|
492
558
|
}
|
|
493
559
|
|
|
494
560
|
export function map(f, ...colls) {
|
|
@@ -1173,9 +1239,14 @@ export function frequencies(coll) {
|
|
|
1173
1239
|
export class LazySeq {
|
|
1174
1240
|
constructor(f) {
|
|
1175
1241
|
this.f = f;
|
|
1242
|
+
this.res = undefined;
|
|
1176
1243
|
}
|
|
1177
1244
|
*[Symbol.iterator]() {
|
|
1178
|
-
|
|
1245
|
+
if (this.res === undefined) {
|
|
1246
|
+
this.res = this.f();
|
|
1247
|
+
this.f = null;
|
|
1248
|
+
}
|
|
1249
|
+
yield* iterable(this.res);
|
|
1179
1250
|
}
|
|
1180
1251
|
}
|
|
1181
1252
|
|
|
@@ -1301,20 +1372,26 @@ export function max(x, y, ...more) {
|
|
|
1301
1372
|
if (y == undefined) {
|
|
1302
1373
|
return x;
|
|
1303
1374
|
}
|
|
1375
|
+
let m = x > y ? x : y;
|
|
1304
1376
|
if (more.length == 0) {
|
|
1305
|
-
return
|
|
1377
|
+
return m;
|
|
1306
1378
|
}
|
|
1307
|
-
return
|
|
1379
|
+
return more.reduce((x, y) => {
|
|
1380
|
+
return x > y ? x : y;
|
|
1381
|
+
}, m);
|
|
1308
1382
|
}
|
|
1309
1383
|
|
|
1310
1384
|
export function min(x, y, ...more) {
|
|
1311
1385
|
if (y == undefined) {
|
|
1312
1386
|
return x;
|
|
1313
1387
|
}
|
|
1388
|
+
let m = x < y ? x : y;
|
|
1314
1389
|
if (more.length == 0) {
|
|
1315
|
-
return
|
|
1390
|
+
return m;
|
|
1316
1391
|
}
|
|
1317
|
-
return
|
|
1392
|
+
return more.reduce((x, y) => {
|
|
1393
|
+
return x < y ? x : y;
|
|
1394
|
+
}, m);
|
|
1318
1395
|
}
|
|
1319
1396
|
|
|
1320
1397
|
export function map_QMARK_(x) {
|
|
@@ -1563,3 +1640,7 @@ export function find(m, k) {
|
|
|
1563
1640
|
return [k, v];
|
|
1564
1641
|
}
|
|
1565
1642
|
}
|
|
1643
|
+
|
|
1644
|
+
export function mod(x, y) {
|
|
1645
|
+
return (x % y + y) % y;
|
|
1646
|
+
}
|