Encuentros
>
>

Madrid C/C++ - De 0 a 100 (Taller): mónadas en C++14

Thursday 15 January 2015, 19:30 - 20:30

Calle Gran Via, 28 , Madrid, España

Las mónadas son un patrón de diseño nacido en el mundo de la programación funcional, y en Haskell más concretamente, para el modelado de efectos laterales complejos de integrar en entornos funcionales, como la entrada/salida de ficheros, manejo de excepciones, etc. Recientemente las mónadas están apareciendo en lenguajes imperativos como C++, donde se están aprovechando para organizar algunas propuestas para el estándar como std::expected o extensiones a la interfaz de std::future. Desafortunadamente, el fundamento teórico de las mónadas está bastante alejado del bagaje conceptual típico de un programador de C++, por lo que este patrón de diseño está rodeado de cierta aura de misterio e impenetrabilidad. Vamos a hacer un taller práctico para jugar con los conceptos monádicos en C++. La teoría se explica en la presentación de una charla que di en el último evento using std::cpp https://github.com/joaquintides/usingstdcpp2014/tree/master/Por%20fin%20entiendo%20qu%C3%A9%20son%20las%20m%C3%B3nadas En el taller implementaremos las siguientes ideas: • Mónada Maybe (basada en boost::optional) • Ejemplo de mónada Maybe: std:.expected • Mónada List • Monadic lifting • Mónada Continuation • Ejemplo de mónada Continuation: extensiones a std::future • Ejemplo de mónada Continuation: Boost.Hana Si tenemos éxito, al final del taller, aparte de pasar un rato divertido, tendremos una mejor comprensión de qué son las mónadas, e, incluso, de para qué sirven :-) Para hacer los ejercicios los asistentes tienen que llevar un ordenador con un compilador C++14 y nada más. Una posibilidad es usar el entorno online Coliru (<a>http://stacked-crooked.com/</a> ), si prefieres un entorno local recomiendo GCC 4.9.0 o Clang 3.4. IMPORTANTE: Antes del taller va a ser muy útil saber qué asistentes estuvieron en la charla de mónadas de using std::cpp 2014 y quiénes no, para calibrar mejor el nivel de familiaridad previa con los conceptos. Joaquín Mª López Muñoz es el autor de Boost.MultiIndex y Boost.Flyweight y miembro del comité español de estandarización de C++.

Más información

Publicado por: Miquel Camps