Programación funcional en C++
320 páginas
Spanish
PDF
4.5

Programación funcional en C++

Programación funcional en C++

Autor:

Año:

Resumen:

Introducción

El libro «Functional Programming in C++» (2018) de Ivan Čukić no es solo un libro de texto más sobre el lenguaje, sino una inmersión profunda en el paradigma de la programación funcional (PF) en el contexto del C++ moderno. Mientras que la mayoría de los libros sobre C++ se centran en el enfoque orientado a objetos o procedural, Čukić propone mirar el lenguaje desde otro ángulo: como una herramienta poderosa para escribir código limpio, predecible y fácilmente testeable utilizando ideas de PF. El libro está dirigido a desarrolladores en activo que ya conocen los fundamentos de C++ y busca mostrar cómo los conceptos funcionales pueden mejorar el trabajo diario.

¿De qué trata este libro?

El libro consta de 15 capítulos divididos en cuatro partes. La primera parte sienta las bases: explica qué es la programación funcional, por qué es útil en C++ e introduce conceptos clave: funciones puras, inmutabilidad, ausencia de efectos secundarios. La segunda parte está dedicada a herramientas prácticas: expresiones lambda, funciones de orden superior, composición de funciones, currificación y aplicación parcial. La tercera parte es la más avanzada: el autor introduce el concepto de mónadas (en particular, Maybe, Either, IO), functores y functores aplicativos, mostrando cómo implementarlos en C++ y usarlos para el manejo de errores y el trabajo con efectos secundarios. La cuarta parte contiene ejemplos de proyectos reales: analizadores sintácticos, generadores, computación paralela, así como consejos para integrar el estilo funcional en bases de código existentes.

¿Para quién es este libro?

El libro está destinado a desarrolladores de C++ de nivel intermedio y avanzado que quieran ampliar su repertorio de paradigmas y aprender a escribir código más fiable y mantenible. También será útil para programadores familiarizados con lenguajes funcionales (Haskell, Scala) que deseen trasladar estos conceptos a C++. Para los principiantes en C++, el libro puede resultar complejo debido a la abundancia de metaprogramación con plantillas y temas avanzados.

¿Qué aprenderá el lector?

  • Fundamentos de PF en C++: funciones puras, inmutabilidad, transparencia referencial.
  • Expresiones lambda y clausuras: sintaxis, captura de variables, lambdas genéricas (C++14).
  • Funciones de orden superior: std::function, std::bind, implementaciones propias de map, filter, fold.
  • Composición de funciones: creación de cadenas de transformación de datos.
  • Mónadas y functores: implementación de Maybe, Either, State, IO en C++.
  • Manejo de errores sin excepciones: uso de std::optional, std::expected (análogo a Either).
  • Cómputo perezoso y generadores: creación de secuencias infinitas.
  • Paralelismo y concurrencia: enfoque funcional para la multitarea.
  • Integración con POO: cómo combinar patrones funcionales y orientados a objetos.

Puntos fuertes

La principal virtud del libro es su enfoque práctico. Čukić no solo repite la teoría de la PF, sino que muestra cómo implementar cada concepto con las herramientas de C++ teniendo en cuenta las particularidades del lenguaje (gestión de memoria, plantillas, sobrecarga de operadores). El código de los ejemplos es limpio, bien comentado y utiliza las capacidades de C++14/17. El autor presta atención al rendimiento: explica cuándo el estilo funcional puede generar sobrecostes y cómo evitarlos. Otro punto a favor es la progresión gradual: desde lambdas simples hasta mónadas, lo que permite al lector sumergirse en el tema de forma paulatina. El libro contiene numerosos ejercicios y preguntas de autoevaluación.

¿A quién se recomienda?

Recomendamos el libro a todos aquellos que quieran ir más allá de la POO habitual y dominar el enfoque funcional en C++. Será útil para desarrolladores de sistemas de alta carga, aplicaciones financieras, motores de juegos y cualquier software donde la fiabilidad y previsibilidad del código sean importantes. Si ya está usando

Recommendations