loading...
Cover image for Function currying for the dynamic length of params i.e Implementing Add(1)(2)(3).....(n)()

Function currying for the dynamic length of params i.e Implementing Add(1)(2)(3).....(n)()

prashantandani profile image Prashant Andani ・1 min read

Currying refers to the process of transforming a function with multiple arities into the same function with less arity. The curried effect is achieved by binding some of the arguments to the first function to invoke so that those values are fixed for the next invocation. Here’s an example of what a curried function looks like:

// add(2)(3);

and the function definition is

function add(a) {
  return function(b) {
    return a + b;
  }
}

The above solution works for the currying for a function with two params

How would we achieve if there are more dynamic no. of params

i.e add(2)(3)(4)(5)....(n)()

Let's write a generic add function that takes n no. of params.

  function add(a) {
   return function(b) {
      return b ? add(a + b) : a;
   }
  }

πŸ˜‡ One-liner solution with an ES6 arrow function

const add = a => b => b ? add(a + b) : a; 

πŸ™Œ πŸ™ŒπŸ» πŸ™ŒπŸΌ πŸ™ŒπŸ½ πŸ™ŒπŸΎ πŸ™ŒπŸΏ

Posted on by:

Discussion

markdown guide