Currying

Una técnica que utiliza una evaluación parcial

Currying se refiere al proceso de tomar una función con n argumentos y transformarla en n funciones que cada una toma un solo argumento.

Esencialmente crea una cadena de funciones parcialmente aplicadas que eventualmente se resuelve con un valor.

Ejemplo:

"use strict";

multiply = function multiply(n, m) { 
 return n * m;
};

 multiply(3, 4) === 12; // true

//Currying 

curryedMultiply = function curryedMultiply(n) {
  return function(m) {
    return multiply(n, m);
  };
};

//Uso

triple = curryedMultiply(3);
triple(4) === 12;  // true

El currying es bastante fácil de entender; Si vemos detenidamente hay una función que recibe un parámetro y una segunda función que usa el parámetro enviado previamente que retorna el resultado de una multiplicación entre los parámetros anteriormente enviados.

Si bien es difícil encontrar un caso de uso en la vida real, es una forma de simplificar el uso de las funciones.

¿Es posible revertir el curring?

Por supuesto

"use strict";

curryedMultiply = function curryedMultiply(n) {
 return function(m) { 
  return n * m;
  };
};

curryedMultiply(3)(4) === 12;  // true
multiply = function multiply(n, m) { 
 return curryedMultiply(n)(m);
};

multiply(3, 4) === 12; // true

results matching ""

    No results matching ""