Programación funcional avanzada con Scala (2ª ed.)
275 € – 500 €
Programación funcional avanzada con Scala (2ª ed.)

Programación funcional avanzada con Scala (2ª ed.)

Información sobre el evento

Comparte este evento

Fecha y hora

Ubicación

Ubicación

Parque Científico Universidad Carlos III de Madrid

C/ Gregorio Peces Barba, 1

Leganés, Madrid

Spain

Ver mapa

Amigos que van
Descripción del evento

Descripción

Resumen

  • Este curso ofrece una introducción avanzada a tres estilos de programación soportados y promovidos por la programación funcional: la programación genérica, la programación aplicativa y la programación monádica. El curso también introduce el papel que juegan las álgebras en la programación funcional, y los dos estilos de programación algebraica principales: basados en type classes y basados en F-algebras, transformaciones naturales, tipos algebraicos de datos generalizados, etc. Durante el curso utilizaremos Scala y su fantástico ecosistema de librerías para la programación funcional, concretamente, shapeless y las librerías de type classes scalaz y cats. Con una menor relevancia, en el curso también se hará mención a la librería de pruebas Scalacheck. Para cada uno de estos tres estilos de programación, se describirán los problemas más relevantes para los que están pensados, sus abstracciones constituyentes y el soporte que ofrecen para ellos las librerías del ecosistema de Scala.

Objetivos

  • Encuadrar los tres estilos de programación estudiados durante el curso como parte del catálogo de técnicas de modularidad proporcionadas por la programación funcional
  • Entender los patrones de diseño utilizados por Cats y Scalaz en la implementación de la signatura, leyes, operaciones derivadas, instancias y sintaxis de las type classes incluidas en dichas librerías.
  • Instanciar las type classes monádicas más comunes (MonadState, MonadError, etc.) con los transformadores de mónadas correspondientes (StateT, EitherT, etc.), y entender cómo funcionan dichos transformadores.
  • Entender el papel que desempeñan las algebras en la programación funcionaln como especificaciones de DSLs, y las distintas formas de representarlas: con tipos algebraicos de datos (F-Algebras) y mediante type classes (Ojbect-algebras).
  • Utilizar tipos algebraicos de datos generalizados, transformaciones naturales y Free monads para diseñar DSLs, y saber cuándo utilizar estas representaciones en lugar de las basadas en Church encodings y álgebras de objetos.
  • Entender las diferencias entre los estilos aplicativo y monádico (es decir, imperativo), sus principales aplicaciones y el soporte que ofrecen scalaz y cats para ellos
  • Entender el concepto de representación libre ("free structures") y su aplicación al diseño de lenguajes aplicativos y monádicos
  • Entender el papel de las listas heterogéneas (HList) y los coproductos para abstraer la forma particular de los tipos algebraicos de datos (ADTs), y poder de esa forma implementar algoritmos genéricos que trabajen a ese nivel de abstracción (por ejemplo, para derivar automáticamente type classes). ¡Todo ello utilizando shapeless!
  • Entender la arquitectura interna de shapeless, cats y scalaz, así como las técnicas de Scala más avanzadas utilizadas en su diseño
  • ¡Aprender más programación funcional por uno mismo!

Temario

  • Type class libraries: Scalaz & Cats
    • Scalaz & Cats overview
    • Type classes: Monad, MonadState, MonadError, etc.
    • Monad transformers: StateT, EitherT, etc.
  • Algebras and functional programming
    • F-algebras and object-algebras
    • GADTs and natural transformations
    • Free structures: free monoids and free monads
  • Applicative programming
    • Applicative functors
    • Traversables
    • Free applicatives
  • Datatype generic programming
    • Shapeless architecture
    • HList, Coproduct and Fix
    • Automatic type class derivation

Audiencia

Este curso está especialmente dirigido a ti si:

  • Programadores de Scala con conocimientos intermedios de programación funcional, deseosos de mejorar su conocimiento de este paradigma y poder utilizar shapeless, scalaz, cats, y otras librerías igualmente avanzadas del ecosistema de Scala, en su código de producción
  • Programadores con un conocimiento profundo de programación funcional, con ganas de saber cómo se aplican dichos conocimientos con Scala y su ecosistema de librerías

Más información en ...

http://www.hablapps.com/index.html#functional-advanced-es

Comparte con tus amigos

Fecha y hora

Ubicación

Parque Científico Universidad Carlos III de Madrid

C/ Gregorio Peces Barba, 1

Leganés, Madrid

Spain

Ver mapa

Guarda este evento

Evento guardado