Apparentemente è possibile implementare Haskell in modo che valuti senza cambiare la semantica della lingua. Se questo è vero, come sono gestite le strutture dati infinite?Eager contro Lazy Haskell. Elenchi infiniti possibili nelle lingue Eager?
http://csg.csail.mit.edu/pubs/haskell.html
Pertanto, una grande quantità di tempo è trascorso creando e distruggendo parti sospese di calcolo (thunks). Troppo spesso, questi calcoli sono abbastanza semplici che sarebbe altrettanto semplice valutarli. Faxen e altri hanno utilizzato analisi statiche per esporre tali opportunità di entusiasmo. Noi invece proponiamo di usare l'entusiasmo ovunque, mentre utilizziamo meccanismi che ci permettono di recuperare se il nostro programma è troppo avido.
L'elemento chiave è "abbiamo meccanismi per recuperare se il nostro programma è troppo impaziente". Quali sono questi meccanismi? In che modo consentono per le strutture dati infinite e gli altri aspetti della valutazione pigra che sono stato indotto a credere che sono impossibili in un linguaggio volgare?
La pagina a cui è collegato sembra fornire una panoramica dei meccanismi. C'era qualcosa di specifico che vuoi chiarire? –
Sì, me ne sono appena reso conto mentre continuavo a leggere. Avrei dovuto leggere per prima cosa. Mi sento un pazzo: p qual è la procedura SO per quando qualcuno commette un errore come questo? Dovrei cancellare la domanda? – TheIronKnuckle
La semplice chiusura della domanda di solito va bene.La risposta di ehird è comunque utile, ed è meglio sbagliare dalla parte della conservazione delle informazioni. –