Currying in JavaScript

Himanshu Sahni - Jun 1 - - Dev Community

What is Function Currying in JavaScript ? πŸ™„πŸ™„

Currying is an advanced technique of working with functions. It’s used not only in JavaScript, but in other languages as well.

It is a technique in functional programming, that transforms the function of multiple arguments into several functions of a single argument in sequence.

The translation of function happens something like this,

function_currying

Currying is a transformation of functions that translates a function from callable as f(a, b, c) into callable as f(a)(b)(c).

Please note: Currying doesn’t call a function. It just transforms it.

How to achieve Currying in JavaScript?

Currying is not built-in by default in JavaScript. We can implement currying by following the ways

  • It can be achieved by using the bind() method.
  • It can be achieved by using the closures.
  • Using Third-party libraries such as Lodash.

1) Currying using bind() method

currying_using_bind

2) Currying using closures in JavaScript

currying_using_closure

3) Currying using Third-party Library Lodash

currying_using_lodash


Why is currying useful in JavaScript

  1. Code re-usability: Curried functions can be used to create reusable code that can be used in different contexts. Since curried functions can be partially applied, they can be reused with different arguments to create new functions.

  2. Improved code readability: Curried functions can make code more readable and expressive by breaking down complex logic into smaller, more manageable pieces. This can make it easier for developers to understand and maintain code.

  3. It helps us to avoid passing the same variable multiple times.

  4. Promotes functional programming: Currying is a key concept in functional programming, and using curried functions in your code can promote functional programming practices.

  5. It reduces the chances of error in our function by dividing it into multiple smaller functions that can handle one responsibility

Noted Points: The currying requires the function to have a fixed number of arguments.

A function that uses rest parameters, such as f(...args), can’t be curried this way.


Summary

Currying in JavaScript is a technique that does the transform and makes f(a,b,c) callable as f(a)(b)(c).

Conclusion

Currying is a great technique that can bring many benefits to JavaScript programming.

By using the currying technique, you can create more re-usable, maintainable, and modular code that is better suited to the challenges of modern web development.

Thanks for Reading πŸ™πŸ˜‡

. . .