summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/node_modules/prelude-ls/lib/List.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/eslint/node_modules/prelude-ls/lib/List.js')
-rw-r--r--tools/node_modules/eslint/node_modules/prelude-ls/lib/List.js686
1 files changed, 686 insertions, 0 deletions
diff --git a/tools/node_modules/eslint/node_modules/prelude-ls/lib/List.js b/tools/node_modules/eslint/node_modules/prelude-ls/lib/List.js
new file mode 100644
index 0000000000..5790816b1a
--- /dev/null
+++ b/tools/node_modules/eslint/node_modules/prelude-ls/lib/List.js
@@ -0,0 +1,686 @@
+// 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; } \ No newline at end of file