| var _arity = |
| /*#__PURE__*/ |
| require("./internal/_arity"); |
| |
| var _curry1 = |
| /*#__PURE__*/ |
| require("./internal/_curry1"); |
| |
| var _curry2 = |
| /*#__PURE__*/ |
| require("./internal/_curry2"); |
| |
| var _curryN = |
| /*#__PURE__*/ |
| require("./internal/_curryN"); |
| /** |
| * Returns a curried equivalent of the provided function, with the specified |
| * arity. The curried function has two unusual capabilities. First, its |
| * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the |
| * following are equivalent: |
| * |
| * - `g(1)(2)(3)` |
| * - `g(1)(2, 3)` |
| * - `g(1, 2)(3)` |
| * - `g(1, 2, 3)` |
| * |
| * Secondly, the special placeholder value [`R.__`](#__) may be used to specify |
| * "gaps", allowing partial application of any combination of arguments, |
| * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__), |
| * the following are equivalent: |
| * |
| * - `g(1, 2, 3)` |
| * - `g(_, 2, 3)(1)` |
| * - `g(_, _, 3)(1)(2)` |
| * - `g(_, _, 3)(1, 2)` |
| * - `g(_, 2)(1)(3)` |
| * - `g(_, 2)(1, 3)` |
| * - `g(_, 2)(_, 3)(1)` |
| * |
| * @func |
| * @memberOf R |
| * @since v0.5.0 |
| * @category Function |
| * @sig Number -> (* -> a) -> (* -> a) |
| * @param {Number} length The arity for the returned function. |
| * @param {Function} fn The function to curry. |
| * @return {Function} A new, curried function. |
| * @see R.curry |
| * @example |
| * |
| * const sumArgs = (...args) => R.sum(args); |
| * |
| * const curriedAddFourNumbers = R.curryN(4, sumArgs); |
| * const f = curriedAddFourNumbers(1, 2); |
| * const g = f(3); |
| * g(4); //=> 10 |
| */ |
| |
| |
| var curryN = |
| /*#__PURE__*/ |
| _curry2(function curryN(length, fn) { |
| if (length === 1) { |
| return _curry1(fn); |
| } |
| |
| return _arity(length, _curryN(length, [], fn)); |
| }); |
| |
| module.exports = curryN; |