Initial commit
[yaffs-website] / node_modules / grunt-contrib-watch / node_modules / globule / node_modules / lodash / curryRight.js
1 var createWrap = require('./_createWrap');
2
3 /** Used to compose bitmasks for function metadata. */
4 var 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 doesn't set the "length" property of curried functions.
14  *
15  * @static
16  * @memberOf _
17  * @since 3.0.0
18  * @category Function
19  * @param {Function} func The function to curry.
20  * @param {number} [arity=func.length] The arity of `func`.
21  * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
22  * @returns {Function} Returns the new curried function.
23  * @example
24  *
25  * var abc = function(a, b, c) {
26  *   return [a, b, c];
27  * };
28  *
29  * var curried = _.curryRight(abc);
30  *
31  * curried(3)(2)(1);
32  * // => [1, 2, 3]
33  *
34  * curried(2, 3)(1);
35  * // => [1, 2, 3]
36  *
37  * curried(1, 2, 3);
38  * // => [1, 2, 3]
39  *
40  * // Curried with placeholders.
41  * curried(3)(1, _)(2);
42  * // => [1, 2, 3]
43  */
44 function curryRight(func, arity, guard) {
45   arity = guard ? undefined : arity;
46   var result = createWrap(func, CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
47   result.placeholder = curryRight.placeholder;
48   return result;
49 }
50
51 // Assign default placeholders.
52 curryRight.placeholder = {};
53
54 module.exports = curryRight;