Table of contents
What is Currying?
Currying is a way to transform a function [→] so that it takes one argument [→] at a time. Instead of taking all arguments at once, a curried function takes the first argument and returns a new function that takes the next argument, and so on. This can make your code cleaner and more flexible.
Key Features of Currying
Currying has some key features:
- One Argument at a Time: Functions take arguments one by one.
- Function Chaining: Each function returns a new function until all arguments are provided.
- Reusable Functions: You can create reusable functions with preset arguments.
Currying Example (Javascript)
In JavaScript, you can create a curried function like this:
01: function curry(func) {
02: return function curried(...args) {
03: if (args.length >= func.length) {
04: return func.apply(this, args);
05: } else {
06: return function(...nextArgs) {
07: return curried.apply(this, args.concat(nextArgs));
08: }
09: }
10: };
11: }
Example of Currying a Function
Let's look at an example:
01: function add(a, b) {
02: return a + b;
03: }
04:
05: let curriedAdd = curry(add);
06:
07: console.log(curriedAdd(1)(2)); // Output: 3
In this example, curriedAdd(1)
returns a new function that takes the second argument, and curriedAdd(1)(2)
returns the sum.
Real-World Uses of Currying
Currying is used in many situations, like:
- Function Composition: Creating complex functions by combining simpler ones.
- Partial Application: Pre-setting some arguments for a function.
- Event Handling: Simplifying event handlers in web development.
- Data Transformation: Creating pipelines for data processing.
Here is another article you might like 😊 What Is A Slice In Programming?