
Learning F# Functional Data Structures and Algorithms
Adnan Masood
- Editorial
- Packt
- Año
- 2015
- Páginas
- ~206
- Nivel
- Básico
De qué trata
Guía práctica escrita por el arquitecto de software y Microsoft MVP Adnan Masood, publicada por Packt Publishing en junio de 2015. El libro introduce el paradigma funcional aplicado al modelado de estructuras de datos y algoritmos utilizando el lenguaje F# (orientado a F# 3.0 / 4.0 sobre el ecosistema .NET y Visual Studio). Está concebido para programadores de nivel básico o intermedio con bagaje en desarrollo imperativo u orientado a objetos (habitualmente en C# o Java) que desean iniciarse en la computación funcional y comprender cómo resolver problemas clásicos sin recurrir a estados mutables ni bucles iterativos tradicionales.
El recorrido comienza sentando los principios del pensamiento funcional: inmutabilidad, composición de funciones, evaluación perezosa (*lazy evaluation*), tipos algebraicos mediante uniones discriminadas (*discriminated unions*), tipos de registro (*records*), tipos opción (`Option`) para el manejo seguro de nulos y coincidencia de patrones (*pattern matching* con *active patterns*). Seguidamente, explora el uso y procesamiento eficiente de colecciones nativas de F# como secuencias (`seq<'T>`), listas y conjuntos, así como el consumo funcional de flujos de datos y archivos CSV. En los capítulos centrales, implementa estructuras de datos funcionales persistentes desde cero: pilas inmutables, colas puras basadas en listas emparejadas, árboles binarios inmutables con sus recorridos, y modelado de grafos con algoritmos de cálculo de caminos más cortos (Dijkstra) y coste mínimo, examinando en cada caso la interoperabilidad con la Base Class Library (BCL) de .NET.
A través de problemas canónicos como las Torres de Hanoi, la serie de Fibonacci con memoización y el procesamiento de flujos mediante secuencias perezosas, el texto demuestra cómo la inmutabilidad simplifica el razonamiento del código y facilita el diseño de programas inherentemente seguros frente a condiciones de carrera concurrentes. Su gran ventaja es servir como puente accesible para desarrolladores del entorno .NET que buscan adoptar F# sin perderse en una formalidad matemática excesiva. No obstante, por su extensión concisa (alrededor de 200 páginas), no profundiza en estructuras funcionales puras avanzadas (como árboles rojo-negro persistentes o montículos de Okasaki), siendo un excelente punto de partida práctico antes de abordar obras teóricas de mayor densidad.
- F# 4.0
- .NET
- Programación funcional
- Inmutabilidad
- Pattern matching
- Evaluación perezosa (Lazy)
- Memoización
- Estructuras persistentes
- Pilas y colas funcionales
- Árboles binarios
- Algoritmos de grafos
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✗ Sin proyectos

