|
|
- // Generated by LiveScript 1.4.0
- var each, map, compact, filter, reject, partition, find, head, first, tail, last, initial, empty, reverse, unique, uniqueBy, fold, foldl, fold1, foldl1, foldr, foldr1, unfoldr, concat, concatMap, flatten, difference, intersection, union, countBy, groupBy, andList, orList, any, all, sort, sortWith, sortBy, sum, product, mean, average, maximum, minimum, maximumBy, minimumBy, scan, scanl, scan1, scanl1, scanr, scanr1, slice, take, drop, splitAt, takeWhile, dropWhile, span, breakList, zip, zipWith, zipAll, zipAllWith, at, elemIndex, elemIndices, findIndex, findIndices, toString$ = {}.toString, slice$ = [].slice;
- each = curry$(function(f, xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- f(x);
- }
- return xs;
- });
- map = curry$(function(f, xs){
- var i$, len$, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- results$.push(f(x));
- }
- return results$;
- });
- compact = function(xs){
- var i$, len$, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (x) {
- results$.push(x);
- }
- }
- return results$;
- };
- filter = curry$(function(f, xs){
- var i$, len$, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (f(x)) {
- results$.push(x);
- }
- }
- return results$;
- });
- reject = curry$(function(f, xs){
- var i$, len$, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (!f(x)) {
- results$.push(x);
- }
- }
- return results$;
- });
- partition = curry$(function(f, xs){
- var passed, failed, i$, len$, x;
- passed = [];
- failed = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- (f(x) ? passed : failed).push(x);
- }
- return [passed, failed];
- });
- find = curry$(function(f, xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (f(x)) {
- return x;
- }
- }
- });
- head = first = function(xs){
- return xs[0];
- };
- tail = function(xs){
- if (!xs.length) {
- return;
- }
- return xs.slice(1);
- };
- last = function(xs){
- return xs[xs.length - 1];
- };
- initial = function(xs){
- if (!xs.length) {
- return;
- }
- return xs.slice(0, -1);
- };
- empty = function(xs){
- return !xs.length;
- };
- reverse = function(xs){
- return xs.concat().reverse();
- };
- unique = function(xs){
- var result, i$, len$, x;
- result = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (!in$(x, result)) {
- result.push(x);
- }
- }
- return result;
- };
- uniqueBy = curry$(function(f, xs){
- var seen, i$, len$, x, val, results$ = [];
- seen = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- val = f(x);
- if (in$(val, seen)) {
- continue;
- }
- seen.push(val);
- results$.push(x);
- }
- return results$;
- });
- fold = foldl = curry$(function(f, memo, xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- memo = f(memo, x);
- }
- return memo;
- });
- fold1 = foldl1 = curry$(function(f, xs){
- return fold(f, xs[0], xs.slice(1));
- });
- foldr = curry$(function(f, memo, xs){
- var i$, x;
- for (i$ = xs.length - 1; i$ >= 0; --i$) {
- x = xs[i$];
- memo = f(x, memo);
- }
- return memo;
- });
- foldr1 = curry$(function(f, xs){
- return foldr(f, xs[xs.length - 1], xs.slice(0, -1));
- });
- unfoldr = curry$(function(f, b){
- var result, x, that;
- result = [];
- x = b;
- while ((that = f(x)) != null) {
- result.push(that[0]);
- x = that[1];
- }
- return result;
- });
- concat = function(xss){
- return [].concat.apply([], xss);
- };
- concatMap = curry$(function(f, xs){
- var x;
- return [].concat.apply([], (function(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) {
- x = ref$[i$];
- results$.push(f(x));
- }
- return results$;
- }()));
- });
- flatten = function(xs){
- var x;
- return [].concat.apply([], (function(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) {
- x = ref$[i$];
- if (toString$.call(x).slice(8, -1) === 'Array') {
- results$.push(flatten(x));
- } else {
- results$.push(x);
- }
- }
- return results$;
- }()));
- };
- difference = function(xs){
- var yss, results, i$, len$, x, j$, len1$, ys;
- yss = slice$.call(arguments, 1);
- results = [];
- outer: for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- for (j$ = 0, len1$ = yss.length; j$ < len1$; ++j$) {
- ys = yss[j$];
- if (in$(x, ys)) {
- continue outer;
- }
- }
- results.push(x);
- }
- return results;
- };
- intersection = function(xs){
- var yss, results, i$, len$, x, j$, len1$, ys;
- yss = slice$.call(arguments, 1);
- results = [];
- outer: for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- for (j$ = 0, len1$ = yss.length; j$ < len1$; ++j$) {
- ys = yss[j$];
- if (!in$(x, ys)) {
- continue outer;
- }
- }
- results.push(x);
- }
- return results;
- };
- union = function(){
- var xss, results, i$, len$, xs, j$, len1$, x;
- xss = slice$.call(arguments);
- results = [];
- for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) {
- xs = xss[i$];
- for (j$ = 0, len1$ = xs.length; j$ < len1$; ++j$) {
- x = xs[j$];
- if (!in$(x, results)) {
- results.push(x);
- }
- }
- }
- return results;
- };
- countBy = curry$(function(f, xs){
- var results, i$, len$, x, key;
- results = {};
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- key = f(x);
- if (key in results) {
- results[key] += 1;
- } else {
- results[key] = 1;
- }
- }
- return results;
- });
- groupBy = curry$(function(f, xs){
- var results, i$, len$, x, key;
- results = {};
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- key = f(x);
- if (key in results) {
- results[key].push(x);
- } else {
- results[key] = [x];
- }
- }
- return results;
- });
- andList = function(xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (!x) {
- return false;
- }
- }
- return true;
- };
- orList = function(xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (x) {
- return true;
- }
- }
- return false;
- };
- any = curry$(function(f, xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (f(x)) {
- return true;
- }
- }
- return false;
- });
- all = curry$(function(f, xs){
- var i$, len$, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- if (!f(x)) {
- return false;
- }
- }
- return true;
- });
- sort = function(xs){
- return xs.concat().sort(function(x, y){
- if (x > y) {
- return 1;
- } else if (x < y) {
- return -1;
- } else {
- return 0;
- }
- });
- };
- sortWith = curry$(function(f, xs){
- return xs.concat().sort(f);
- });
- sortBy = curry$(function(f, xs){
- return xs.concat().sort(function(x, y){
- if (f(x) > f(y)) {
- return 1;
- } else if (f(x) < f(y)) {
- return -1;
- } else {
- return 0;
- }
- });
- });
- sum = function(xs){
- var result, i$, len$, x;
- result = 0;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- result += x;
- }
- return result;
- };
- product = function(xs){
- var result, i$, len$, x;
- result = 1;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- result *= x;
- }
- return result;
- };
- mean = average = function(xs){
- var sum, i$, len$, x;
- sum = 0;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- x = xs[i$];
- sum += x;
- }
- return sum / xs.length;
- };
- maximum = function(xs){
- var max, i$, ref$, len$, x;
- max = xs[0];
- for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) {
- x = ref$[i$];
- if (x > max) {
- max = x;
- }
- }
- return max;
- };
- minimum = function(xs){
- var min, i$, ref$, len$, x;
- min = xs[0];
- for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) {
- x = ref$[i$];
- if (x < min) {
- min = x;
- }
- }
- return min;
- };
- maximumBy = curry$(function(f, xs){
- var max, i$, ref$, len$, x;
- max = xs[0];
- for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) {
- x = ref$[i$];
- if (f(x) > f(max)) {
- max = x;
- }
- }
- return max;
- });
- minimumBy = curry$(function(f, xs){
- var min, i$, ref$, len$, x;
- min = xs[0];
- for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) {
- x = ref$[i$];
- if (f(x) < f(min)) {
- min = x;
- }
- }
- return min;
- });
- scan = scanl = curry$(function(f, memo, xs){
- var last, x;
- last = memo;
- return [memo].concat((function(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) {
- x = ref$[i$];
- results$.push(last = f(last, x));
- }
- return results$;
- }()));
- });
- scan1 = scanl1 = curry$(function(f, xs){
- if (!xs.length) {
- return;
- }
- return scan(f, xs[0], xs.slice(1));
- });
- scanr = curry$(function(f, memo, xs){
- xs = xs.concat().reverse();
- return scan(f, memo, xs).reverse();
- });
- scanr1 = curry$(function(f, xs){
- if (!xs.length) {
- return;
- }
- xs = xs.concat().reverse();
- return scan(f, xs[0], xs.slice(1)).reverse();
- });
- slice = curry$(function(x, y, xs){
- return xs.slice(x, y);
- });
- take = curry$(function(n, xs){
- if (n <= 0) {
- return xs.slice(0, 0);
- } else {
- return xs.slice(0, n);
- }
- });
- drop = curry$(function(n, xs){
- if (n <= 0) {
- return xs;
- } else {
- return xs.slice(n);
- }
- });
- splitAt = curry$(function(n, xs){
- return [take(n, xs), drop(n, xs)];
- });
- takeWhile = curry$(function(p, xs){
- var len, i;
- len = xs.length;
- if (!len) {
- return xs;
- }
- i = 0;
- while (i < len && p(xs[i])) {
- i += 1;
- }
- return xs.slice(0, i);
- });
- dropWhile = curry$(function(p, xs){
- var len, i;
- len = xs.length;
- if (!len) {
- return xs;
- }
- i = 0;
- while (i < len && p(xs[i])) {
- i += 1;
- }
- return xs.slice(i);
- });
- span = curry$(function(p, xs){
- return [takeWhile(p, xs), dropWhile(p, xs)];
- });
- breakList = curry$(function(p, xs){
- return span(compose$(p, not$), xs);
- });
- zip = curry$(function(xs, ys){
- var result, len, i$, len$, i, x;
- result = [];
- len = ys.length;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (i === len) {
- break;
- }
- result.push([x, ys[i]]);
- }
- return result;
- });
- zipWith = curry$(function(f, xs, ys){
- var result, len, i$, len$, i, x;
- result = [];
- len = ys.length;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (i === len) {
- break;
- }
- result.push(f(x, ys[i]));
- }
- return result;
- });
- zipAll = function(){
- var xss, minLength, i$, len$, xs, ref$, i, lresult$, j$, results$ = [];
- xss = slice$.call(arguments);
- minLength = undefined;
- for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) {
- xs = xss[i$];
- minLength <= (ref$ = xs.length) || (minLength = ref$);
- }
- for (i$ = 0; i$ < minLength; ++i$) {
- i = i$;
- lresult$ = [];
- for (j$ = 0, len$ = xss.length; j$ < len$; ++j$) {
- xs = xss[j$];
- lresult$.push(xs[i]);
- }
- results$.push(lresult$);
- }
- return results$;
- };
- zipAllWith = function(f){
- var xss, minLength, i$, len$, xs, ref$, i, results$ = [];
- xss = slice$.call(arguments, 1);
- minLength = undefined;
- for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) {
- xs = xss[i$];
- minLength <= (ref$ = xs.length) || (minLength = ref$);
- }
- for (i$ = 0; i$ < minLength; ++i$) {
- i = i$;
- results$.push(f.apply(null, (fn$())));
- }
- return results$;
- function fn$(){
- var i$, ref$, len$, results$ = [];
- for (i$ = 0, len$ = (ref$ = xss).length; i$ < len$; ++i$) {
- xs = ref$[i$];
- results$.push(xs[i]);
- }
- return results$;
- }
- };
- at = curry$(function(n, xs){
- if (n < 0) {
- return xs[xs.length + n];
- } else {
- return xs[n];
- }
- });
- elemIndex = curry$(function(el, xs){
- var i$, len$, i, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (x === el) {
- return i;
- }
- }
- });
- elemIndices = curry$(function(el, xs){
- var i$, len$, i, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (x === el) {
- results$.push(i);
- }
- }
- return results$;
- });
- findIndex = curry$(function(f, xs){
- var i$, len$, i, x;
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (f(x)) {
- return i;
- }
- }
- });
- findIndices = curry$(function(f, xs){
- var i$, len$, i, x, results$ = [];
- for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) {
- i = i$;
- x = xs[i$];
- if (f(x)) {
- results$.push(i);
- }
- }
- return results$;
- });
- module.exports = {
- each: each,
- map: map,
- filter: filter,
- compact: compact,
- reject: reject,
- partition: partition,
- find: find,
- head: head,
- first: first,
- tail: tail,
- last: last,
- initial: initial,
- empty: empty,
- reverse: reverse,
- difference: difference,
- intersection: intersection,
- union: union,
- countBy: countBy,
- groupBy: groupBy,
- fold: fold,
- fold1: fold1,
- foldl: foldl,
- foldl1: foldl1,
- foldr: foldr,
- foldr1: foldr1,
- unfoldr: unfoldr,
- andList: andList,
- orList: orList,
- any: any,
- all: all,
- unique: unique,
- uniqueBy: uniqueBy,
- sort: sort,
- sortWith: sortWith,
- sortBy: sortBy,
- sum: sum,
- product: product,
- mean: mean,
- average: average,
- concat: concat,
- concatMap: concatMap,
- flatten: flatten,
- maximum: maximum,
- minimum: minimum,
- maximumBy: maximumBy,
- minimumBy: minimumBy,
- scan: scan,
- scan1: scan1,
- scanl: scanl,
- scanl1: scanl1,
- scanr: scanr,
- scanr1: scanr1,
- slice: slice,
- take: take,
- drop: drop,
- splitAt: splitAt,
- takeWhile: takeWhile,
- dropWhile: dropWhile,
- span: span,
- breakList: breakList,
- zip: zip,
- zipWith: zipWith,
- zipAll: zipAll,
- zipAllWith: zipAllWith,
- at: at,
- elemIndex: elemIndex,
- elemIndices: elemIndices,
- findIndex: findIndex,
- findIndices: findIndices
- };
- function curry$(f, bound){
- var context,
- _curry = function(args) {
- return f.length > 1 ? function(){
- var params = args ? args.concat() : [];
- context = bound ? context || this : this;
- return params.push.apply(params, arguments) <
- f.length && arguments.length ?
- _curry.call(context, params) : f.apply(context, params);
- } : f;
- };
- return _curry();
- }
- function in$(x, xs){
- var i = -1, l = xs.length >>> 0;
- while (++i < l) if (x === xs[i]) return true;
- return false;
- }
- function compose$() {
- var functions = arguments;
- return function() {
- var i, result;
- result = functions[0].apply(this, arguments);
- for (i = 1; i < functions.length; ++i) {
- result = functions[i](result);
- }
- return result;
- };
- }
- function not$(x){ return !x; }
|