686 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			686 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // 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; } |