JavaScript Currying
Todd Carlson
Posted on November 1, 2020
This week, as I was learning about functional programming with JavaScript, I came across the concept of currying. As per usual I got to learn a cool new programming term that I had never heard before. This weeks' fun new word was "arity." If you hear someone refer to the "arity" of a function, they are talking about the number of arguments that the function requires. With this in mind, currying a function means to convert a function of X "arity" into X functions of "arity" 1. Let's look at an example to get a better understanding of what this means.
const normalFunction = (a, b) => {
return a + b;
}
Here we have an example of an un-curried function with an "arity" of 2, since it takes in two arguments a, and b.
const curriedFunction = a => b => a + b;
curriedFunction(2)(4)
// returns 6
If, for some reason, you are unable to supply all of the arguments for a function at one time, this could come in handy. You could save each function call into a variable, which would hold the value of the returned function which could then take the next argument when it becomes available.
let funcB = curriedFunction(1);
console.log(funcB(2));
// Returns 3
And there you have it, a short and sweet introduction to JavaScript currying. I encourage you all to explore this topic in more depth, since I have heard it is a fairly common question to encounter during technical interviews.
Posted on November 1, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.