Guía incompleta sobre la evaluación perezosa en Haskell

Fuentes: The Incomplete Guide to Lazy Evaluation (in Haskell)

La evaluación perezosa (lazy evaluation) es el mecanismo estándar con el que se ejecutan los programas escritos en Haskell y, por tanto, determina tanto el tiempo de cómputo como el consumo de memoria de estos. Más allá de su impacto en el rendimiento, constituye una herramienta expresiva que permite escribir código modular de formas que serían difíciles o imposibles en lenguajes estrictos. Comprenderla en profundidad resulta clave para aprovechar todo el potencial de la programación puramente funcional.

La guía se organiza como una serie de tutoriales progresivos. El primero, "How does Lazy Evaluation Work in Haskell?", explica paso a paso cómo se evalúan las expresiones bajo esta estrategia y qué implicaciones tiene para el uso de tiempo y memoria. El segundo, "Writing More Modular Code with Lazy Evaluation", muestra por qué merece la pena adoptarla: facilita un estilo de programación claro y modular, e introduce el concepto de listas infinitas como caso paradigmático. El tercero, "Non-Strict Semantics of Haskell", separa el "qué" calcula un programa del "cómo" lo calcula la evaluación perezosa, recurriendo a la semántica denotacional y a la noción de función estricta, imprescindible al optimizar código.

El texto se completa con referencias a herramientas y artículos adicionales para razonar sobre el consumo de espacio y tiempo en Haskell, configurando un recorrido formativo pensado para programadores que quieran dominar tanto la teoría como la práctica del modelo no estricto.