The idea of currying, by itself, is simple. If you need a function with, say, three parameters, you could write something like the following by using arrow functions:
const make3 = (a, b, c) => String(100 * a + 10 * b + c);
Alternatively, you can have a sequence of functions, each with a single parameter, as shown here:
const make3curried = a => b => c => String(100 * a + 10 * b + c);
Alternatively, you might want to consider them as nested functions, like the following code snippet:
const make3curried2 = function(a) { return function(b) { return function(c) { return String(100 * a + 10 * b + c); }; };};
In terms of usage, there's an important difference in how you'd use each function. While you would call the ...