1var createCurry = require('../internal/createCurry'); 2 3/** Used to compose bitmasks for wrapper metadata. */ 4var CURRY_RIGHT_FLAG = 16; 5 6/** 7 * This method is like `_.curry` except that arguments are applied to `func` 8 * in the manner of `_.partialRight` instead of `_.partial`. 9 * 10 * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic 11 * builds, may be used as a placeholder for provided arguments. 12 * 13 * **Note:** This method does not set the "length" property of curried functions. 14 * 15 * @static 16 * @memberOf _ 17 * @category Function 18 * @param {Function} func The function to curry. 19 * @param {number} [arity=func.length] The arity of `func`. 20 * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. 21 * @returns {Function} Returns the new curried function. 22 * @example 23 * 24 * var abc = function(a, b, c) { 25 * return [a, b, c]; 26 * }; 27 * 28 * var curried = _.curryRight(abc); 29 * 30 * curried(3)(2)(1); 31 * // => [1, 2, 3] 32 * 33 * curried(2, 3)(1); 34 * // => [1, 2, 3] 35 * 36 * curried(1, 2, 3); 37 * // => [1, 2, 3] 38 * 39 * // using placeholders 40 * curried(3)(1, _)(2); 41 * // => [1, 2, 3] 42 */ 43var curryRight = createCurry(CURRY_RIGHT_FLAG); 44 45// Assign default placeholders. 46curryRight.placeholder = {}; 47 48module.exports = curryRight; 49 50