«Currying» es un patrón de programación en el cual una función con múltiples argumentos se transforma en una secuencia de funciones, cada una con un solo argumento. Más específicamente, una función «curried» es una función que toma un número de argumentos uno a la vez, retornando una nueva función que toma el siguiente argumento hasta que todos los argumentos se hayan proporcionado.
Aquí hay un ejemplo básico de cómo podrías implementar el currying en JavaScript:
function suma(a) {
return function(b) {
return a + b;
}
}
const sumaCon5 = suma(5); // Esto retorna una función
console.log(sumaCon5(3)); // Esto imprime 8
En el ejemplo anterior, la función suma(a)
toma un argumento y retorna una nueva función. Esa nueva función espera el siguiente argumento, b
. Cuando llamamos a suma(5)
, obtenemos una nueva función que sumará 5 a su argumento. Luego, cuando llamamos a sumaCon5(3)
, obtenemos el resultado 8.
El currying puede ser muy útil en la programación funcional, ya que te permite generar nuevas funciones a partir de funciones existentes y reutilizar la lógica con diferentes valores. Esto puede ayudarte a escribir código más limpio y modular.
Existen librerías como lodash y Ramda que proporcionan utilidades para «curryficar» funciones de una manera más sencilla y completa, permitiendo, por ejemplo, la curryficación de funciones con un número arbitrario de argumentos.
Deja una respuesta