Saltar al contenido
Logotipo de Trainontech Trainontech

Lenguajes y Fundamentos de Programación · LNG-162

F# y programación funcional en .NET

Inmutabilidad, tipos algebraicos y modelado del dominio con un enfoque funcional aplicable en proyectos .NET reales.

Próximamente Avanzado 8 módulos · 39 clases

Formato asíncrono Desarrollo F#, .NET Interactive

Lo que aprenderás

  • Escribir funciones puras y componerlas con operadores de tubería y aplicación parcial.
  • Modelar el dominio con registros y uniones discriminadas que impidan estados inválidos.
  • Recorrer datos con coincidencia de patrones exhaustiva verificada por el compilador.
  • Transformar colecciones con las funciones de los módulos List, Array y Seq.
  • Representar el fallo con Result y Option en lugar de excepciones y valores nulos.
  • Interoperar con bibliotecas de C# desde F# dentro de una misma solución .NET.

Contenido del curso

8 módulos · 39 clases en vídeo · práctica guiada en cada módulo

Módulo 1 · Presentación y entorno 4 clases
  • Qué aporta F# dentro de la plataforma .NET
  • Primera sesión en cuaderno con .NET Interactive
  • Sintaxis significativa por indentación
  • Inferencia de tipos y mensajes del compilador
Módulo 2 · Valores, funciones y composición 5 clases
  • Valores inmutables y enlaces con let
  • Funciones como valores y currificación
  • Aplicación parcial
  • Operadores de tubería y de composición
  • Funciones recursivas y recursión de cola
Módulo 3 · Tipos algebraicos 5 clases
  • Registros y su igualdad estructural
  • Uniones discriminadas
  • Tuplas y desestructuración
  • Hacer imposibles los estados inválidos
  • Unidades de medida
Módulo 4 · Coincidencia de patrones 5 clases
  • match sobre uniones y registros
  • Patrones con guardas y patrones anidados
  • Exhaustividad comprobada por el compilador
  • Patrones activos
  • Refactorizar condicionales a patrones
Módulo 5 · Colecciones y transformaciones 5 clases
  • List, Array y Seq: diferencias prácticas
  • map, filter y fold
  • Evaluación perezosa con secuencias
  • Agrupaciones y agregados
  • Comparación con LINQ
Módulo 6 · Errores sin excepciones 5 clases
  • Option en lugar de nulo
  • Result y propagación del fallo
  • Expresiones de cálculo: qué son y para qué sirven
  • Validación que acumula errores
  • Cuándo sigue conviniendo una excepción
Módulo 7 · Interoperación y proyectos 5 clases
  • Consumir bibliotecas de C# desde F#
  • Exponer una API de F# usable desde C#
  • Estructura de una solución mixta
  • Pruebas con Expecto o xUnit
  • Asincronía con async y tareas
Módulo 8 · Caso práctico: motor de reglas de un dominio 5 clases
  • Del enunciado a los tipos del dominio
  • Reglas como funciones componibles
  • Validación con acumulación de errores
  • Integración con un servicio en C#
  • Entrega: biblioteca de dominio con pruebas

Requisitos

  • Experiencia en algún lenguaje de la plataforma .NET, preferiblemente C#.
  • SDK de .NET 8 instalado, con el kernel de .NET Interactive o un editor con soporte de F#.
  • Conocer los conceptos básicos de tipos genéricos y colecciones.

Descripción

Buena parte de los errores de un sistema de gestión no son fallos de algoritmo, sino estados que nunca deberían haber existido: un pedido cancelado con fecha de envío, un cliente sin identificador, un campo que unas veces es nulo y otras no. En un lenguaje con tipos algebraicos, muchos de esos estados simplemente no se pueden escribir.

El curso presenta F# como herramienta práctica dentro de .NET, no como ejercicio académico. Se trabajan funciones puras, composición, inmutabilidad, uniones discriminadas y coincidencia de patrones exhaustiva, y se modela un dominio completo comparándolo con su equivalente en C#. También se cubre la interoperación, porque en un proyecto real F# convive con bibliotecas y servicios ya existentes.

Al terminar se puede introducir F# en la parte del sistema donde más aporta, típicamente la lógica de dominio y el cálculo, y llevar a C# muchas de las ideas aprendidas. Abre paso al trabajo con modelado por tipos, procesamiento de datos y arquitecturas donde la corrección se comprueba en compilación en lugar de en pruebas.

¿Para quién es este curso?

  • Desarrolladores C# que buscan reducir errores de estado en la lógica de negocio.
  • Arquitectos de software que valoran modelar reglas de dominio con garantías de compilación.
  • Programadores con experiencia funcional que se incorporan a un ecosistema .NET.
Próximamente

Curso en hoja de ruta. Se prioriza según la demanda recogida y los proyectos en cartera.

Código
LNG-162
Nivel
Avanzado
Público
Desarrollo
Entorno
F#, .NET Interactive

Este curso incluye

  • 39 clases en vídeo bajo demanda
  • Práctica en entornos web y simuladores, sin instalar nada
  • Tutorización en el campus
  • Acceso desde móvil, tableta y ordenador
  • Actualizaciones cuando cambia la versión de la herramienta
  • Certificado de finalización

Sigue aprendiendo

Cursos relacionados

PY-106Lenguajes y Fundamentos de Programación

Concurrencia: multihilo y multiproceso

Paralelizar adquisición de datos y tareas de E/S sin introducir errores difíciles de reproducir.

Python

Avanzado 33 clases

PY-107Lenguajes y Fundamentos de Programación

Testing y TDD en Python

Pruebas unitarias, fixtures y desarrollo dirigido por pruebas en proyectos técnicos reales.

Python

Avanzado 34 clases

PY-131Lenguajes y Fundamentos de Programación

Webscraping con agentes de IA en local

Agentes que navegan y extraen datos sin depender de servicios en la nube.

PythonOllama

Avanzado 34 clases