Currificación
Transformar una función de varios argumentos en una secuencia de funciones de un solo argumento. add(a, b) pasa a ser add(a)(b). Por defecto en Haskell (toda función se currifica automáticamente). Manual en JS, Python, Ruby.
Debe su nombre a Haskell Curry (lógico). Uso práctico: la aplicación parcial — fijar algunos argumentos y devolver una función. const add5 = curry(add)(5); add5(10) // 15. Bibliotecas funcionales: Lodash _.curry(), Ramda R.curry. Patrón habitual en React: manejadores de eventos que reciben datos: onClick={() => deleteItem(id)} es aplicación parcial manual. Se distingue de la aplicación parcial: la currificación transforma la forma de la función, la aplicación parcial fija valores de argumentos. En el JS moderno, las funciones flecha y la sintaxis spread hacen amable la currificación. Currificar en TypeScript: un suplicio en cuanto entran genéricos complejos.