| var _curry2 = |
| /*#__PURE__*/ |
| require("./internal/_curry2"); |
| |
| var curryN = |
| /*#__PURE__*/ |
| require("./curryN"); |
| /** |
| * Returns a function of arity `n` from a (manually) curried function. |
| * |
| * @func |
| * @memberOf R |
| * @since v0.14.0 |
| * @category Function |
| * @sig Number -> (a -> b) -> (a -> c) |
| * @param {Number} length The arity for the returned function. |
| * @param {Function} fn The function to uncurry. |
| * @return {Function} A new function. |
| * @see R.curry |
| * @example |
| * |
| * const addFour = a => b => c => d => a + b + c + d; |
| * |
| * const uncurriedAddFour = R.uncurryN(4, addFour); |
| * uncurriedAddFour(1, 2, 3, 4); //=> 10 |
| */ |
| |
| |
| var uncurryN = |
| /*#__PURE__*/ |
| _curry2(function uncurryN(depth, fn) { |
| return curryN(depth, function () { |
| var currentDepth = 1; |
| var value = fn; |
| var idx = 0; |
| var endIdx; |
| |
| while (currentDepth <= depth && typeof value === 'function') { |
| endIdx = currentDepth === depth ? arguments.length : idx + value.length; |
| value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx)); |
| currentDepth += 1; |
| idx = endIdx; |
| } |
| |
| return value; |
| }); |
| }); |
| |
| module.exports = uncurryN; |