Sobes.tech
Middle
240

What is currying?

Answer from AI

sobes.tech AI

Currying is a technique of transforming a function that takes multiple arguments into a sequence of functions, each with a single argument.

Example:

Original function that takes three arguments:

def add(x, y, z):
  return x + y + z

Curried version:

def curried_add(x):
  def inner1(y):
    def inner2(z):
      return x + y + z
    return inner2
  return inner1

Usage:

Original function:

result = add(1, 2, 3) // result will be 6

Curried version:

curried_func = curried_add(1)
curried_func = curried_func(2)
result = curried_func(3) // result will be 6
# Or in one line:
result = curried_add(1)(2)(3) // result will be 6

Main advantages:

  • Partial application of functions: You can create new functions by fixing some arguments.
  • Improved readability and modularity: Complex computations can be broken down into smaller, manageable parts.
  • Simplified function composition: Curried functions are easier to combine.
  • Better adaptation to functional programming: A programming style where functions are primary objects.

Disadvantages:

  • Can complicate code for those unfamiliar with the concept.
  • May add slight overhead with multiple nested function calls.