list
Version:
Fast purely functional immutable lists.
75 lines • 2.76 kB
JavaScript
import * as L from "./index";
// All functions of arity 1 are simply re-exported as they don't require currying
export { Node, List, list, isList, length, of, empty, first, last, flatten, pop, init, tail, fromArray, toArray, reverse, fromIterable, sort, group } from "./index";
function curry2(f) {
return function curried(a, b) {
return arguments.length === 2 ? f(a, b) : function (b) { return f(a, b); };
};
}
function curry3(f) {
return function curried(a, b, c) {
switch (arguments.length) {
case 3:
return f(a, b, c);
case 2:
return function (c) { return f(a, b, c); };
default:
// Assume 1
return curry2(function (b, c) { return f(a, b, c); });
}
};
}
// Arity 2
export var prepend = curry2(L.prepend);
export var append = curry2(L.append);
export var pair = curry2(L.pair);
export var repeat = curry2(L.repeat);
export var times = curry2(L.times);
export var nth = curry2(L.nth);
export var map = curry2(L.map);
export var forEach = curry2(L.forEach);
export var pluck = curry2(L.pluck);
export var range = curry2(L.range);
export var filter = curry2(L.filter);
export var reject = curry2(L.reject);
export var partition = curry2(L.partition);
export var join = curry2(L.join);
export var ap = curry2(L.ap);
export var chain = curry2(L.chain);
export var every = curry2(L.every);
export var all = curry2(L.all);
export var some = curry2(L.some);
export var any = curry2(L.any);
export var none = curry2(L.none);
export var find = curry2(L.find);
export var indexOf = curry2(L.indexOf);
export var findIndex = curry2(L.findIndex);
export var includes = curry2(L.includes);
export var contains = includes;
export var equals = curry2(L.equals);
export var concat = curry2(L.concat);
export var take = curry2(L.take);
export var takeLast = curry2(L.takeLast);
export var drop = curry2(L.drop);
export var dropLast = curry2(L.dropLast);
export var takeWhile = curry2(L.takeWhile);
export var dropWhile = curry2(L.dropWhile);
export var splitAt = curry2(L.splitAt);
export var sortBy = curry2(L.sortBy);
export var sortWith = curry2(L.sortWith);
export var groupWith = curry2(L.groupWith);
export var zip = curry2(L.zip);
// Arity 3
export var foldl = curry3(L.foldl);
export var reduce = foldl;
export var foldr = curry3(L.foldr);
export var equalsWith = curry3(L.equalsWith);
export var reduceRight = foldr;
export var update = curry3(L.update);
export var adjust = curry3(L.adjust);
export var slice = curry3(L.slice);
export var remove = curry3(L.remove);
export var insert = curry3(L.insert);
export var insertAll = curry3(L.insertAll);
export var zipWith = curry3(L.zipWith);
//# sourceMappingURL=curried.js.map