extra-ilists.web
Version:
ILists is a pair of key iterable list and value iterable list, with unique keys {web}.
1 lines • 13.1 kB
JavaScript
function IDENTITY$3(n){return n}function COMPARE$3(n,r){return n<r?-1:n>r?1:0}function IDENTITY$2(n){return n}function COMPARE$2(n,r){return n<r?-1:n>r?1:0}const END=Number.MAX_SAFE_INTEGER;function is$1(n){return null!=n&&"function"==typeof n[Symbol.iterator]}function isList(n){return is$1(n)&&"string"!=typeof n}function isOnce(n){return n[Symbol.iterator]()===n}function toMany(n,r=!1){return isOnce(n)?r?Array.from(n):toManyLate(n[Symbol.iterator](),[]):n}function toManyLate(n,r){return{[Symbol.iterator]:()=>{var e=-1;return{next:()=>{if(++e<r.length)return{value:r[e],done:!1};var{value:t,done:u}=n.next();return u||(r[e]=t),{value:t,done:u}}}}}}function isEmpty$1(n){for(var r of n)return!1;return!0}function length(n,r=0,e=END){var t=-1,u=0;for(var o of n)++t>=r&&t<e&&++u;return u}function slice(n,r=0,e=END){return r>=0&&e>=0?slicePos(n,r,e):r>=0&&e<0?slicePosNeg(n,r,e):sliceNeg(n,r,e)}function*slicePos(n,r,e){var t=-1;for(var u of n){if(++t>=e)break;t>=r&&(yield u)}}function*slicePosNeg(n,r,e){var t=0,u=-1,o=[],a=-e;for(var i of n)++u<r||(o.length>=a&&(yield o[t]),o[t]=i,t=(t+1)%a)}function*sliceNeg(n,r,e){var t=0,u=0,o=[],a=-r;for(var i of n)o[t]=i,t=(t+1)%a,++u;r=Math.max(u+r,0),e=e<0?Math.max(u+e,0):Math.min(e,u);var f=Math.max(e-r,0),s=Math.max(t+f-a,0);yield*o.slice(t,t+f),yield*o.slice(0,s)}function head$1(n,r){for(var e of n)return e;return r}function take$1(n,r=1){return slice(n,0,r)}function drop$1(n,r=1){return slice(n,r)}function searchValue$2(n,r,e=null,t=null){e=e||COMPARE$2;var u=(t=t||IDENTITY$2)(r,0,null),o=-1;for(var a of n){if(0===e(t(a,++o,n),u))return o}return-1}function hasValue$1(n,r,e=null,t=null){return searchValue$2(n,r,e,t)>=0}function*map$1(n,r){var e=-1;for(var t of n)yield r(t,++e,n)}function*concat$2(...n){for(var r of n)yield*r}function IDENTITY$1$1(n){return n}function randomValue$1(n,r=Math.random){return n[Math.floor(r()*n.length)]}function some$3(n,r=null){return r?n.some(r):someBoolean$1(n)}function someBoolean$1(n){for(var r=0,e=n.length;r<e;++r)if(n[r])return!0;return!1}function zip$2(n,r=null,e=null,t){r=r||IDENTITY$1$1,e=e||some$3;var u=n.length,o=[];if(0===u)return o;for(var a=new Array(u).fill(!1),i=n.map((n=>n.length)),f=0;;++f){for(var s=0,l=[];s<u;++s)a[s]=f>=i[s],l[s]=a[s]?t:n[s][f];if(e(a))break;o.push(r(l,f,null))}return o}function chunk$1(n,r=1,e=r){for(var t=[],u=0,o=n.length;u<o;u+=e)t.push(n.slice(u,u+r));return t}function concat$1(...n){return concat$$1(new Set,...n)}function concat$$1(n,...r){for(var e of r)for(var t of e)n.add(t);return n}function isDisjoint$1(n,r){for(var e of r)if(n.has(e))return!1;return!0}function IDENTITY$1(n){return n}function COMPARE$1(n,r){return n<r?-1:n>r?1:0}function*keys$1(n){for(var[r]of n)yield r}function*values$1(n){for(var[,r]of n)yield r}function get$2(n,r){for(var[e,t]of n)if(e===r)return t}function count$1(n,r){var e=0;for(var[t,u]of n)r(u,t,n)&&++e;return e}function countAs$1(n,r=null){r=r||IDENTITY$1;var e=new Map;for(var[t,u]of n){var o=r(u,t,n),a=e.get(o)||0;e.set(o,a+1)}return e}function rangeEntries$1(n,r=null,e=null){r=r||COMPARE$1,e=e||IDENTITY$1;var t,u,o,a,i,f,s=0;for(var[l,c]of n){var v=e(c,l,n);(0===s||r(v,o)<0)&&(t=l,u=c,o=v),(0===s||r(v,f)>0)&&(a=l,i=c,f=v),++s}return[[t,u],[a,i]]}function find$1(n,r){for(var[e,t]of n)if(r(t,e,n))return t}function*findAll$1(n,r){for(var[e,t]of n)r(t,e,n)&&(yield t)}function search$1(n,r){for(var[e,t]of n)if(r(t,e,n))return e}function*searchAll$1(n,r){for(var[e,t]of n)r(t,e,n)&&(yield e)}function searchValue$1(n,r,e=null,t=null){e=e||COMPARE$1;var u=(t=t||IDENTITY$1)(r,null,null);for(var[o,a]of n){if(0===e(t(a,o,n),u))return o}}function*searchValueAll$1(n,r,e=null,t=null){e=e||COMPARE$1;var u=(t=t||IDENTITY$1)(r,null,null);for(var[o,a]of n){0===e(t(a,o,n),u)&&(yield o)}}function forEach$1(n,r){for(var[e,t]of n)r(t,e,n)}function some$2(n,r){for(var[e,t]of n)if(r(t,e,n))return!0;return!1}function every$1(n,r){for(var[e,t]of n)if(!r(t,e,n))return!1;return!0}function reduce$1(n,r,e){var t=arguments.length<=2;for(var[u,o]of n)t?(t=!1,e=o):e=r(e,o,u,n);return e}function join$1(n,r=",",e="="){var t="";for(var[u,o]of n)t+=u+e+o+r;return t.slice(0,-r.length)}function IDENTITY(n){return n}function COMPARE(n,r){return n<r?-1:n>r?1:0}function fromRange(n,r,e=1){for(var t=(r-n)/e,u=[],o=0;o<t;++o,n+=e)u.push(n);return u}function index(n,r){var e=n.length;return r>=0?Math.min(r,e):Math.max(e+r,0)}function get$1(n,r){return n[index(n,r)]}function getAll$1(n,r){return r.map((r=>get$1(n,r)))}function*subsequences(n,r=-1){var e=n.length;if(!(r>e))if(r!==e)if(0!==r&&0!==e){var t=n.slice(0,-1);for(var u of(yield*subsequences(t,r),subsequences(t,r-1)))u.push(n[e-1]),yield u}else yield[];else yield n}function randomSubsequence(n,r=-1,e=Math.random){return r>n.length?null:r>=0?randomSubsequenceFixed(n,r,e):randomSubsequenceAll(n,e)}function randomSubsequenceFixed(n,r,e){var t=fromRange(0,n.length);return randomPermutation$(t,r,e).sort(),getAll$1(n,t)}function randomSubsequenceAll(n,r){var e=[];for(var t of n)r()<.5&&e.push(t);return e}function randomPermutation$(n,r=-1,e=Math.random){var t=n.length;if(r>t)return n;r=r>=0?r:Math.floor((t+1)*e());for(var u=0;u<r;++u){var o=u+Math.floor((t-u)*e()),a=n[u];n[u]=n[o],n[o]=a}return n.length=r,n}function some$1(n,r=null){return r?n.some(r):someBoolean(n)}function someBoolean(n){for(var r=0,e=n.length;r<e;++r)if(n[r])return!0;return!1}function fromLists(n){var[r,e]=n,t=e[Symbol.iterator](),u=new Map;for(var o of r)u.set(o,t.next().value);return u}function compare$1(n,r,e=null,t=null){e=e||COMPARE,t=t||IDENTITY;var u=unionKeys$1(n,r);for(var o of u){if(!n.has(o))return-1;if(!r.has(o))return 1;var a=e(t(n.get(o),o,n),t(r.get(o),o,r));if(0!==a)return a}return 0}function getAll$2(n,r){return r.map((r=>n.get(r)))}function*subsets$1(n,r=-1){for(var e of subsequences([...n.keys()],r))yield filterAt$1(n,e)}function randomSubset$1(n,r=-1,e=Math.random){var t=randomSubsequence([...n.keys()],r,e);return filterAt$1(n,t)}function hasSubset$1(n,r,e=null,t=null){e=e||COMPARE,t=t||IDENTITY;for(var[u,o]of r){if(!n.has(u))return!1;if(0!==e(t(n.get(u),u,n),t(o,u,r)))return!1}return!0}function filterAt$1(n,r){var e=new Map;for(var t of r)e.set(t,n.get(t));return e}function zip$1(n,r=null,e=null,t){r=r||IDENTITY,e=e||some$1;var u=unionKeys$1(...n),o=new Map;for(var a of u){if(e(n.map((n=>!n.has(a)))))break;var i=n.map((n=>n.has(a)?n.get(a):t));o.set(a,r(i,a,null))}return o}function concat$(n,...r){for(var e of r)for(var[t,u]of e)n.set(t,u);return n}function unionKeys$1(...n){var r=new Set;for(var e of n)for(var[t]of e)r.add(t);return r}function union$1(n,r,e=null){return union$(new Map(n),r,e)}function union$(n,r,e=null){e=e||IDENTITY;for(var[t,u]of r)n.has(t)?n.set(t,e(n.get(t),u)):n.set(t,u);return n}function intersection$1(n,r,e=null){e=e||IDENTITY;var t=new Map;for(var[u,o]of r)n.has(u)&&t.set(u,e(n.get(u),o));return t}function symmetricDifference$1(n,r){return symmetricDifference$(new Map(n),r)}function symmetricDifference$(n,r){for(var[e,t]of r)n.has(e)?n.delete(e):n.set(e,t);return n}function is(n){return Array.isArray(n)&&2===n.length&&isList(n[0])&&isList(n[1])}function keys(n){return n[0]}function values(n){return n[1]}function*entries(n){var r=values(n)[Symbol.iterator]();for(var e of keys(n))yield[e,r.next().value]}function fromEntries(n){var r=toMany(n);return[keys$1(r),values$1(r)]}function size(n){return length(keys(n))}function isEmpty(n){return isEmpty$1(keys(n))}function compare(n,r,e=null,t=null){return compare$1(fromLists(n),fromLists(r),e,t)}function isEqual(n,r,e=null,t=null){return 0===compare(n,r,e,t)}function get(n,r){return get$2(entries(n),r)}function getAll(n,r){return getAll$2(fromLists(n),r)}function getPath(n,r){for(var e of r)n=is(n)?get(n,e):void 0;return n}function hasPath(n,r){return void 0!==getPath(n,r)}function set(n,r,e){var t=[],u=[];for(var[o,a]of entries(n))t.push(o),u.push(o===r?e:a);return[t,u]}function swap(n,r,e){return[map$1(keys(n),(n=>n===r?e:n===e?r:n)),values(n)]}function remove(n,r){var e=[],t=[];for(var[u,o]of entries(n))u!==r&&(e.push(u),t.push(o));return[e,t]}function head(n,r=[]){return head$1(entries(n),r)}function tail(n){return drop(n,1)}function take(n,r=1){return[take$1(keys(n),r),take$1(values(n),r)]}function drop(n,r=1){return[drop$1(keys(n),r),drop$1(values(n),r)]}function count(n,r){return count$1(entries(n),r)}function countAs(n,r=null){return countAs$1(entries(n),r)}function min(n,r=null,e=null){return rangeEntries(n,r,e)[0][1]}function minEntry(n,r=null,e=null){return rangeEntries(n,r,e)[0]}function max(n,r=null,e=null){return rangeEntries(n,r,e)[1][1]}function maxEntry(n,r=null,e=null){return rangeEntries(n,r,e)[1]}function range(n,r=null,e=null){var[t,u]=rangeEntries(n,r,e);return[t[1],u[1]]}function rangeEntries(n,r=null,e=null){return rangeEntries$1(entries(n),r,e)}function*subsets(n,r=-1){for(var e of subsets$1(fromLists(n),r))yield[e.keys(),e.values()]}function randomKey(n,r=Math.random){return randomValue$1([...keys(n)],r)}function randomValue(n,r=Math.random){return randomValue$1([...values(n)],r)}function randomEntry(n,r=Math.random){return randomValue$1([...entries(n)],r)}function randomSubset(n,r=-1,e=Math.random){var t=randomSubset$1(fromLists(n),r,e);return[t.keys(),t.values()]}function has(n,r){return hasValue$1(keys(n),r)}function hasValue(n,r,e=null,t=null){return void 0!==searchValue(n,r,e,t)}function hasEntry(n,r,e=null,t=null){e=e||COMPARE$3,t=t||IDENTITY$3;var[u,o]=r;return 0===e(t(get(n,u),u,n),t(o,u,n))}function hasSubset(n,r,e=null,t=null){return hasSubset$1(fromLists(n),fromLists(r),e,t)}function find(n,r){return find$1(entries(n),r)}function findAll(n,r){return findAll$1(entries(n),r)}function search(n,r){return search$1(entries(n),r)}function searchAll(n,r){return searchAll$1(entries(n),r)}function searchValue(n,r,e=null,t=null){return searchValue$1(entries(n),r,e,t)}function searchValueAll(n,r,e=null,t=null){return searchValueAll$1(entries(n),r,e,t)}function forEach(n,r){forEach$1(entries(n),r)}function some(n,r=null){return some$2(entries(n),r)}function every(n,r){return every$1(entries(n),r)}function map(n,r){var e=[],t=[];for(var[u,o]of entries(n))e.push(u),t.push(r(o,u,n));return[e,t]}function reduce(n,r,e){var t=arguments.length,u=entries(n);return t>2?reduce$1(u,r,e):reduce$1(u,r)}function filter(n,r){var e=[],t=[];for(var[u,o]of entries(n))r(o,u,n)&&(e.push(u),t.push(o));return[e,t]}function filterAt(n,r){var e=[],t=[];for(var[u,o]of entries(n))r.includes(u)&&(e.push(u),t.push(o));return[e,t]}function reject(n,r){var e=[],t=[];for(var[u,o]of entries(n))r(o,u,n)||(e.push(u),t.push(o));return[e,t]}function rejectAt(n,r){var e=[],t=[];for(var[u,o]of entries(n))r.includes(u)||(e.push(u),t.push(o));return[e,t]}function flat(n,r=-1,e=null,t=null){e=e||IDENTITY$3,t=t||is;var u=flatTo$(new Map,n,r,e,t);return[u.keys(),u.values()]}function flatTo$(n,r,e,t,u){for(var[o,a]of entries(r)){var i=t(a,o,r);0!==e&&u(i,o,r)?flatTo$(n,i,e-1,t,u):n.set(o,i)}return n}function flatMap(n,r=null,e=null){r=r||IDENTITY$3,e=e||is;var t=new Map;for(var[u,o]of entries(n)){var a=r(o,u,n);e(a,u,n)?concat$(t,entries(a)):t.set(u,a)}return[t.keys(),t.values()]}function zip(n,r=null,e=null,t){var u=zip$1(n.map((n=>new Map(entries(n)))),r,e,t);return[u.keys(),u.values()]}function partition(n,r){var e=[],t=[],u=[],o=[];for(var[a,i]of entries(n))r(i,a,n)?(e.push(a),t.push(i)):(u.push(a),o.push(i));return[[e,t],[u,o]]}function partitionAs(n,r=null){r=r||IDENTITY$3;var e=new Map;for(var[t,u]of entries(n)){var o=r(u,t,n);e.has(o)||e.set(o,[[],[]]);var[a,i]=e.get(o);a.push(t),i.push(u)}return e}function chunk(n,r=1,e=r){return zip$2([chunk$1([...keys(n)],r,e),chunk$1([...values(n)],r,e)])}function concat(...n){var r=fromLists([concat$2(...n.map(keys)),concat$2(...n.map(values))]);return[r.keys(),r.values()]}function join(n,r=",",e="="){return join$1(entries(n),r,e)}function isDisjoint(n,r){return isDisjoint$1(new Set(keys(n)),keys(r))}function unionKeys(...n){return concat$1(...n.map((n=>new Set(keys(n)))))}function union(n,r,e=null){var t=union$1(entries(n),entries(r),e);return[t.keys(),t.values()]}function intersection(n,r,e=null){var t=intersection$1(new Map(entries(n)),entries(r),e);return[t.keys(),t.values()]}function difference(n,r){var e=fromLists(n);for(var t of keys(r))e.delete(t);return[e.keys(),e.values()]}function symmetricDifference(n,r){var e=symmetricDifference$1(entries(n),entries(r));return[e.keys(),e.values()]}export{chunk,compare,concat,count,countAs,difference,drop,entries,randomEntry as entry,every,filter,filterAt,find,findAll,flat,flatMap,forEach,fromEntries,get,getAll,getPath,has,hasEntry,hasPath,hasSubset,hasValue,head,intersection,is,isDisjoint,isEmpty,isEqual,join,randomKey as key,keys,size as length,map,max,maxEntry,min,minEntry,partition,partitionAs,randomEntry,randomKey,randomSubset,randomValue,range,rangeEntries,reduce,reject,rejectAt,remove,search,searchAll,searchValue,searchValueAll,set,size,some,randomSubset as subset,subsets,swap,symmetricDifference,tail,take,union,unionKeys,randomValue as value,values,zip};