
Functional Programming in JavaScript
Dan Mantyla
- Editorial
- Packt
- Año
- 2015
- Páginas
- ~261
- Nivel
- Intermedio
De qué trata
Libro de Dan Mantyla, publicado por Packt, que presenta la programación funcional aplicada a JavaScript en la época de ES5, con algunas referencias a lo que traería ES6. Está pensado para desarrolladores que ya manejan el lenguaje, incluidos objetos, funciones y callbacks, y quieren adoptar un estilo más declarativo y modular, sin necesidad de conocer antes lenguajes funcionales como Haskell o Lisp.
El libro sigue tres etapas. Empieza con una demostración de lo que aporta el lado funcional de JavaScript y con los fundamentos del paradigma: funciones de primera clase y de orden superior, funciones puras, map, filter y reduce, y la diferencia entre el estilo imperativo y el declarativo. Después prepara el entorno de trabajo y repasa las librerías funcionales disponibles entonces: Underscore.js, Fantasy Land, Bilby.js, Lazy.js y Bacon.js, esta última para programación reactiva funcional. Más adelante profundiza en técnicas como la aplicación parcial, el currying, la composición de funciones y la evaluación perezosa, se asoma a conceptos de la teoría de categorías como functores y mónadas, y termina con cómo combinar la programación funcional con la orientada a objetos dentro de una misma base de código.
El enfoque es conceptual, con ejemplos de código en cada capítulo pero sin un proyecto guiado de principio a fin. Sirve para ver cómo aplicar ideas funcionales a JavaScript sin abandonar el lenguaje. Conviene saber que varias de las librerías que cita han quedado en desuso o han sido sustituidas (hoy se usan más Lodash/fp, Ramda o RxJS), y que el código previo a ES6 se ve anticuado frente a las funciones flecha y las herramientas actuales. Es mejor leerlo para entender los conceptos que como referencia de herramientas.
Descripción aproximada: se basa en el título y el contexto del libro.
- Programación funcional
- Funciones de orden superior
- Funciones puras
- Currying
- Aplicación parcial
- Composición de funciones
- Evaluación perezosa
- Functores y mónadas
- Underscore.js
- Lazy.js
- Bacon.js
- Funcional + POO
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✗ Sin proyectos

