Aparentemente, es posible implementar Haskell de modo que se evalúe con entusiasmo sin cambiar la semántica del lenguaje en absoluto. Si eso es cierto, ¿cómo se manejan las estructuras de datos infinitas?Eager versus Lazy Haskell. Listas infinitas posibles en idiomas impacientes?
http://csg.csail.mit.edu/pubs/haskell.html
Por lo tanto, una gran cantidad de tiempo se dedica a la creación y la destrucción de piezas suspendidas de computación (procesadores). Con demasiada frecuencia, estos cálculos son lo suficientemente simples como para que sea tan fácil evaluarlos en su lugar. Faxen y otros han utilizado el análisis estático para exponer tales oportunidades para el afán. En su lugar, proponemos utilizar el afán en todas partes, mientras usamos mecanismos que nos permiten recuperar si nuestro programa está demasiado ansioso.
Lo más importante es que "tenemos mecanismos para recuperar si nuestro programa está demasiado ansioso". ¿Cuáles son estos mecanismos? ¿Cómo lo permiten para las estructuras de datos infinitas y los otros aspectos de la evaluación perezosa que me han hecho creer que son imposibles en un lenguaje entusiasta?
La página a la que se ha vinculado parece dar una visión general de los mecanismos. ¿Hubo algo específico que quisiera aclarar? –
Sí, me acabo de dar cuenta de eso cuando seguí leyendo. Debería haber leído todo en primer lugar. Me siento como un tonto: p ¿cuál es el procedimiento SO cuando alguien comete un error como este? ¿Debo eliminar la pregunta? – TheIronKnuckle
El solo hecho de cerrar la pregunta generalmente es correcto.La respuesta de ehird es útil de todos modos, y es mejor ignorar el lado de preservar la información. –