Guía de Programación Funcional para Principiantes
¡Bienvenido a la Guía Mayormente Adecuada de Programación Funcional! Este libro te enseñará los fundamentos de la programación funcional en JavaScript.
Lo que aprenderás
- Funciones puras: Escribe código predecible y verificable
- Composición: Construye programas complejos con funciones simples
- Currying: Transforma funciones para mejor reutilización
- Functores & Mónadas: Maneja transformaciones de datos con elegancia
- Teoría de categorías: Fundamentos matemáticos de la programación funcional
Empezando
Comienza con Capítulo 1: ¿Qué demonios estamos haciendo? para iniciar tu viaje en programación funcional.
Sobre esta guía
Este es un libro sobre el paradigma funcional en general. Usaremos el lenguaje de programación funcional más popular del mundo: JavaScript. Algunos considerarán esta una mala elección porque va contracorriente de la cultura imperativa predominante actual.
Sin embargo, creo que es la mejor forma de aprender FP por varias razones:
Probablemente lo usas a diario en el trabajo Esto permite practicar y aplicar tus nuevos conocimientos cada día en proyectos reales, en lugar de solo en proyectos personales durante las noches usando lenguajes FP más esotéricos.
No necesitas aprenderlo todo al inicio para escribir programas En lenguajes funcionales puros, no puedes registrar variables ni leer nodos DOM sin usar mónadas. Aquí podemos tomar atajos mientras aprendemos a purificar nuestro código base. Además, es más fácil comenzar con JavaScript por su enfoque multiparadigmas, permitiendo recurrir a prácticas conocidas durante tu curva de aprendizaje.
El lenguaje tiene todas las capacidades para código funcional de primer nivel Con ayuda de pequeñas bibliotecas, podemos emular características de lenguajes como Scala o Haskell. Aunque la programación orientada a objetos domina la industria, resulta torpe en JavaScript. Es como acampar junto a una autopista o bailar claqué con botas de lluvia. Debemos usar
bindconstantemente para evitar cambios inesperados enthis, no tenemos clases[^1], y existen soluciones complejas para comportamientos impredecibles al olvidar la palabra clavenew. Para muchos de nosotros, la FP simplemente se siente más natural.
Dicho esto, los lenguajes funcionales tipados serán sin duda el mejor entorno para el estilo presentado en este libro. Usaremos JavaScript como herramienta de aprendizaje paradigmático; dónde aplicar estos conceptos dependerá de ti. Afortunadamente, las interfaces matemáticas son universales: te sentirás cómodo con Swiftz, Scalaz, Haskell, PureScript y otros entornos con fundamentos matemáticos.
Ejercicios
Encontrarás ejercicios prácticos en el directorio exercises del repositorio para reforzar tu aprendizaje.
Soporte
Las funciones de soporte y estructuras de datos algebraicas utilizadas están disponibles en el directorio support.
[^1]: Las clases fueron añadidas en ES2015, pero principalmente son azúcar sintáctico sobre la herencia basada en prototipos existente.