Razonando acerca de programas funcionales (2012)
Una de las grandes ventajas de los lenguajes funcionales puros es que permiten ser razonados ecuacionalmente, de esta forma, se facilita su depuración, vericación de la corrección, reducción, etc. Pero esta pureza impide los efectos computacionales necesarios para que este tipo de programas tengan interacción alguna, es por esto que las funciones monádicas, que se encargan de encapsular estos efectos y así conservar la pureza, representan una estructura importante dentro de los lenguajes funcionales tales como Haskell. Sin embargo, debido a que las mónadas poseen una estructura imperativa, no se ha podido establecer una manera de poder razonar ecuacionalmente sobre éstas, el lograrlo supondría un avance significativo en lo que a verificación de programas se refiere. Por tanto, se presentan los conceptos básicos que permitan comprender cómo se razona sobre los programas y se muestra mediante un ejemplo la posibilidad de razonar ecuacionalmente sobre funciones monádicas.