Projekt

Obecné

Profil

Stáhnout (1.46 KB) Statistiky
| Větev: | Revize:
1
var createWrap = require('./_createWrap');
2

    
3
/** Used to compose bitmasks for function metadata. */
4
var WRAP_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, WRAP_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;
(276-276/571)