Kurz erklärt
Bei Lazy Evaluation wird ein Ausdruck erst ausgewertet, wenn sein Ergebnis wirklich gebraucht wird – und dann höchstens einmal. Das Gegenteil ist die sofortige (eager) Auswertung.
Genauer
Dadurch lassen sich unendliche Folgen beschreiben und teure Berechnungen vermeiden, die nie benötigt werden. Haskell ist durchgehend lazy; in anderen Sprachen gibt es Generatoren, Streams, lazy-Variablen und Kurzschluss-Operatoren.