Lazy evaluation (source code)

= Lazy evaluation

Evaluation delayed until a result is demanded, with sharing of the delayed computation's result. A <lazy list> can expose a constructor before computing its tail; this permits productive infinite structures and <lazy feedback streams>. A non-strict language can implement its semantics this way without making every <function> non-strict.