La programación funcional ofrece diversas ventajas a la hora de construir software: reducción de errores, manejo eficiente de datos en entornos concurrentes y paralelos, y un gran...
La programación funcional ofrece diversas ventajas a la hora de construir software: reducción de errores, manejo eficiente de datos en entornos concurrentes y paralelos, y un gran respaldo teórico. No obstante, muchos programadores fracasan en su intento de adentrarse en ella por ir directamente a aprenderla usando un lenguaje de programación (tecnología), con lo que omiten la teoría y el contexto histórico que le dio origen. Este libro incluye una introducción sobre qué son la computación y la programación en pos de delimitar su campo de acción. En segundo lugar, presenta el cálculo lambda, el modelo de computación que influenció a la programación funcional en los años cuando ni siquiera existían los lenguajes de programación, ni mucho menos los ordenadores digitales. Para concluir, el libro emplea los lenguajes de programación Racket y Python para enseñar las diversas características de la programación funcional, sus fortalezas y debilidades, y cómo ellas pueden combinarse con otros paradigmas. Con todo ello, aprenderá: La visión general de la computación, la programación y los lenguajes de programación. Los fundamentos que subyacen a la programación funcional, como el cálculo lambda. Las diferencias entre el cálculo lambda libre de tipos y tipado. La aplicación de estos conceptos en un lenguaje de programación de estirpe funcional, como lo es Racket, y en otro de uso masivo, como Python. El diseño y la construcción de un pequeño lenguaje de programación usando el enfoque funcional. Si tiene un mínimo conocimiento en programación y desea adentrarse en otra forma de pensar y construir sistemas computacionales, donde viven conceptos como reducción, funciones puras, transparencia referencial, búsqueda de patrones, entre otros, no espere más para hacerse con este libro. Gracias a él no descubrirá tan solo la programación funcional, sino que ampliará su perspectiva con respecto a la computación desde una óptica sistémica y libre de dogmas. Camilo Chacón Sartori fue elegido escritor destacado por Quora en español durante tres años seguidos (2018, 2019 y 2020) por sus más de 700 respuestas sobre ciencias de la computación. Actualmente tiene un podcast llamado Había una vez un algoritmo, donde trata temas filosóficos, prácticos y teóricos sobre la computación. Obtuvo su licenciatura y máster en Ingeniería Informática, ambos, con distinción máxima. 'El libro nos presenta un sólido análisis teórico y conceptual de los tópicos vertidos aquí []. La lectura y el estudio detallado de su contenido proveerán al lector de conocimientos necesarios que le permitirán comprender, resolver y extender los problemas asociados al desarrollo de programas computacionales, conforme a las tendencias actuales'.
Índice
Prólogo................................................................................... 1
Acerca del libro...................................................................... 5
PARTE I
INTRODUCCIÓN A LA COMPUTACIÓN Y LA PROGRAMACIÓN
Capítulo 1. ¿Qué es la computación?................................... 11
Capítulo 2. ¿Qué es la programación?.................................. 27
Capítulo 3. Lenguajes de programación............................... 39
PARTE II CÁLCULO LAMBDA.................................................. 55
Capítulo 4. ¿Qué es el cálculo lambda?................................ 57
Capítulo 5. Operadores y variables....................................... 73
Capítulo 6. Reducción........................................................... 89
Capítulo 7. Aritmética........................................................... 99
Capítulo 8. Condicionales................................................. 111
Capítulo 9. Tuplas y listas................................................. 121
Capítulo 10. Tipos............................................................. 131
Capítulo 11. Cálculo-? como base de un lenguaje de programación real........ 151
PARTE III PROGRAMACIÓN FUNCIONAL........................... 161
Capítulo 12. ¿Qué es la programación funcional?............ 163
Capítulo 13. Estructuras de datos.................................... 205
Capítulo 14. Algoritmos.................................................... 233
Capítulo 15. Crear un pequeño lenguaje de programación usando Racket................ 265