Cuál es la vida útil de un valor memorable en un lenguaje funcional como Haskell?

En un lenguaje funcional puro con semántica perezosa (como Haskell), los resultados de los cálculos se memorizan para que las evaluaciones posteriores de una función con las mismas entradas no vuelvan a calcular el valor sino que lo obtengan directamente del caché de valores memorizados.

Me pregunto si estos valores memorizados se reciclan en algún momento.

Si es así, significa que los valores memorizados deben volver a calcularse más adelante, y los beneficios de la memorización no son tan emocionantes en mi humilde opinión. Si no, entonces está bien, esto es inteligente para almacenar en caché todo ... pero ¿significa que un programa, si se ejecuta durante un período de tiempo suficiente y largo, siempre consumirá más y más memoria?

magine un programa que realice un análisis numérico intensivo: por ejemplo, para encontrar raíces de una lista de cientos de miles de funciones matemáticas utilizando un algoritmo de dicotomí

Cada vez que el programa evalúa una función matemática con un número real específico, el resultado será memorizado. Pero solo hay una probabilidad muy pequeña de que aparezca exactamente el mismo número real durante el algoritmo, lo que provocará una pérdida de memoria (o al menos, un uso realmente malo).

Mi idea es que tal vez los valores memorizados simplemente se "abarquen" a algo en el programa (por ejemplo, a la continuación actual, la pila de llamadas, etc.), pero no pude encontrar algo práctico sobre el tema.

Admito que no he examinado a fondo la implementación del compilador Haskell (¿vago?), Pero por favor, ¿alguien podría explicarme cómo funciona en la práctica?

EDITAR Ok, entiendo mi error de las primeras respuestas: la semántica pura implica Transparencia referencial que a su vez no implica Memoization automática, pero solo garantiza que no habrá ningún problema con ella.

Creo que algunos artículos en la web son engañosos al respecto, porque desde el punto de vista de un principiante, parece que la propiedad de Transparencia referencial es tan genial porque permite la memoria implícita.

Respuestas a la pregunta(2)

Su respuesta a la pregunta