Saltar al contenido

Detalles

Supongamos que ya estás convencido de las virtudes de la programación funcional y que has decidido hacer de la pureza tu principal aliado para combatir los efectos de lado. No pasa mucho tiempo hasta que descubres que la inmutabilidad es una condición que viene de la mano de la pureza. Por tanto, con mucho mimo, decides desplegar las estructuras de datos de tu aplicación de forma inmutable. Armado con el método copy generado por las case classes, te llenas de valor y comienzas a declarar las funciones que transforman dichas estructuras. Pero entonces, algo terrible ocurre: transformaciones a priori básicas empiezan a generar cantidades ingentes de boilerplate e hilar las nuevas versiones de tus entidades se convierte en una verdadera pesadilla. ¿No decían que la programación funcional era elegante y concisa? Es entonces cuando una malvada vocecilla brota de tu interior y te susurra: "usa un var, usa un var..." ¡Pero no debes hacer caso! Tenemos nuevas armas indicadas para esta tarea.

Dejando este (penoso) dramatismo de lado, la situación planteada es bastante habitual en las primeras etapas de todo programador funcional. Por tanto, esta charla se plantea precisamente para mitigar esta frustración. Para ello, dotaremos al programador de nuevas herramientas como la State monad y las optics (donde destacan las lenses) para afrontar el desarrollo y testing de una aplicación extraída del mundo real, el popular juego Candy Crush. Por encontrarnos en el ecosistema de Scala, utilizaremos scalaz (https://github.com/scalaz/scalaz) y Monocle (https://github.com/julien-truffaut/Monocle) como vehículos para ilustrar nuestros ejemplos. Dicho esto, ya he hecho mi parte: ¡he conseguido introducir todos los elementos que aparecían en este título tan caótico!

En conclusión, si quieres aprender las técnicas existentes para transformar estructuras de datos inmutables de una forma elegante o simplemente pasar un buen rato con la comunidad de scaleros de Madrid, no te lo pienses y apúntate a este meetup.

El ponente:

Jesús López González (@jeslg (https://twitter.com/jeslg)) es estudiante de doctorado en Habla Computing (http://www.hablapps.com), donde investiga sobre la aplicación de coalgebras en la programación de sistemas reactivos.

Temas relacionados

También te puede gustar