Versions Compared
compared with
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Overview
Excerpt |
---|
Create a new function based on an existing function but with some parameters pre-defined. |
For more info on currying, see Wikipedia.
Availability
Util.js v0.5 and above.
Syntax
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
// create new function based on existing one with one or more pre-defined arguments
var fNew = fExisting.uCurry(cArgs);
// use the new function, optionally specifying additional arguments
fNew(args); |
Parameters / Functions
Parameter / Function | Type | Mandatory | Description | Util.js version |
---|---|---|---|---|
fExisting | Function | The original function | 0.5 | |
cArgs | One or more arguments | One or more arguments that will be passed in to fExisting when you access it via fNew | 0.5 | |
args | Additional arguments | Optionally (based on requirements of fExisting) pass in remaining arguments when calling fNew | 0.5 |
Return value
Value | Type | Description | Util.js version |
---|---|---|---|
<fNew> | Function | A new function which will automatically set the cArgs arguments for fExisting and then append any additional arguments passed in to fNew. | 0.5 |
<fExisting> | Function | If you do not specify cArgs then the existing function will be returned. | 0.5 |
Example
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
function add(a,b) {
return a+b;
}
var Add5To = add.curry(5); // parameter "a" is pre-defined with value 5
Add5To(10); // 15 (parameter "a" already set to 5, "b" set to 10) |
A better example is shown in the Object.uAddProperty() example using a curried allianceExistsBetween() function.
Div | ||
---|---|---|
| ||
AvailabilityThis feature requires:
|
Div | ||
---|---|---|
| ||
See alsoRelated articles:
|