Underscore.js _.curry() Method
Last Updated :
23 Sep, 2020
The Underscore.js _.curry() method returns a curried version of the given function. If the reverse is true, arguments will be processed from right to left.
Syntax:
_.curry( fun, reverse )
Parameters: This method takes two parameters as listed above and discussed below.
- fun: This is the given function.
- reverse: It is an optional parameter and determines whether the arguments will be reversed or not
Return Value: It returns a curried version of the function.
Note: To execute the below examples, you have to install the underscore-contrib library by using this command prompt and execute the following command.
npm install underscore-contrib
Example 1:
Javascript
var _ = require( 'underscore-contrib' );
function fun(a, b, c, d){
return a + b + c + d;
}
var gfgFunc = _.curry(fun);
console.log( "Addition is :" ,
gfgFunc(2)(23)(2)(3));
console.log(gfgFunc(1)(2));
|
Output:
Addition is : 30
[Function: mustBeUnary]
Example 2:
Javascript
var _ = require( 'underscore-contrib' );
function fun(a, b, c) {
return a * b * c;
}
var gfgFunc = _.curry(fun);
console.log( "Multiplication is :" ,
gfgFunc(2)(23)(2));
console.log(gfgFunc(1)(2));
|
Output:
Multiplication is : 92
[Function: mustBeUnary]
Example 3: Arguments are processed right to left for reversed = true.
Javascript
var _ = require( 'underscore-contrib' );
function fun(a, b, c){
return arguments;
}
var gfgFunc = _.curry(fun, true );
console.log( "curried arguments are :" ,
gfgFunc( "arg1" )( "arg2" )( "arg3" ));
|
Output: Arguments are stored in reverse order.
curried arguments are : [Arguments]
{ '0': 'arg3', '1': 'arg2', '2': 'arg1' }
Example 4: Arguments are processed left to right for reversed = false.
Javascript
var _ = require( 'underscore-contrib' );
function fun(a, b, c){
return arguments;
}
var gfgFunc = _.curry(fun, false );
console.log( "curried arguments are :" ,
gfgFunc( "arg1" )( "arg2" )( "arg3" ));
|
Output:
curried arguments are : [Arguments]
{ '0': 'arg1', '1': 'arg2', '2': 'arg3' }
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...