Currying vs. otras formas de definir funciones
El currying es una técnica proveniente de la programación funcional que transforma una función de múltiples parámetros en una secuencia de funciones unarias. Aunque elegante y tradicional en lenguajes como Haskell, no es la única aproximación posible para el manejo de funciones con varios argumentos en diseño de software moderno.
Críticas prácticas al currying
Entre las principales críticas al currying en contextos más allá de la programación funcional pura se encuentran:
- En lenguajes imperativos o multiparadigma, complica la implementación de parámetros por defecto, opcionales y con nombre, funcionalidades muy utilizadas en ecosistemas reales (ver discusión).
- Introduce intermediaciones innecesarias cuando la necesidad práctica es la aplicación parcial (partial application), no la currificación total, lo que puede afectar la claridad y el rendimiento (detalle aquí).
- El estilo tupla (recibiendo todos los argumentos como una única estructura) suele ser más lógico y menos propenso a errores, especialmente en contextos de tipado estático y composición de funciones.
Cuándo currificar tiene sentido
Pese a estas críticas, existen escenarios donde currying ofrece ventajas concretas, como en lenguajes de tipos dependientes o cuando se busca una composición funcional pura y clara. En frameworks modernos y librerías, puede simplificar el encadenamiento de operaciones y el diseño de APIs altamente genéricas.
👥 ¿Quieres ir más allá de la noticia?
En nuestra comunidad discutimos las tendencias, compartimos oportunidades y nos ayudamos entre emprendedores. Sin humo, solo acción.
👥 Unirme a la comunidadImplicancias para founders tech
Si estás diseñando lenguajes, frameworks o herramientas internas, evalúa cuidadosamente el paradigma que propicia tu stack: ¿necesitas elegancia matemática y composición pura, o priorizas usabilidad y flexibilidad para equipos y usuarios? En muchos stacks actuales, la aplicación parcial directa —potenciada por features como pipeline operators— ofrece un balance superior para el negocio y el time-to-market. Identificar en qué casos currificar te da ventaja (por ejemplo, en DSLs internos para IA o automatización) y cuándo evitarlo, es parte de elegir la herramienta correcta.
Conclusión
El currying no es una bala de plata para el diseño de funciones; adopta soluciones alineadas con las necesidades técnicas y de producto. Reflexiona sobre composición, ergonomía y claridad en tu stack para maximizar la productividad y minimizar la fricción en tus equipos.
Descubre cómo otros founders implementan estas soluciones en comunidad para escalar su desarrollo y producto
Fuentes
- https://emi-h.com/articles/a-case-against-currying.html (fuente original)
- https://news.ycombinator.com/item?id=28583490 (fuente adicional)
- https://codeblog.jonskeet.uk/2012/01/30/currying-vs-partial-function-application/ (fuente adicional)
- https://stackify.com/javascript-currying-vs-partial-application/ (fuente adicional)
- https://jayconrod.com/posts/14/currying-and-why-we-don-t-pass-arguments-as-tuples (fuente adicional)
- https://forum.freecodecamp.org/t/do-not-understand-currying/450139 (fuente adicional)













