Ho cancellato accidentalmente il mio post, ma sto ripubblicando questa domanda per chiarimenti.Conferma della valutazione lazy
Se ho una funzione:
const x = 1
Se chiedo Haskell:
const (1/0)
Si tornerà 1
perché la valutazione pigra in realtà non calcolare quanto 1/0
è, giusto? Non è necessario.
Sì, questo è ciò che le garanzie semantiche non severe di Haskell. –
Si noti che '1/0' non lancia in realtà un'eccezione - restituisce semplicemente un valore' Double' speciale. Ma se lo si cambia in qualcosa che "fa" un'eccezione (ad es., "Errore" muore "'), si ottiene ancora '1' come risposta. – MathematicalOrchid
Ovviamente, 'const' è un brutto nome per questo - potresti chiamarlo' const1', e potrebbe infatti essere definito come 'const1 = const 1'. Il nome 'const', come la maggior parte delle funzioni di Preludio, non dovrebbe essere usato per nient'altro. – leftaroundabout