Lazy Evaluation
The term for a strategy? to evaluate objects only when one is sure they are useful or needed, and not before.Lazy evaluation allows avoiding lots of (possibly infinite) computations, while greatly simplifying the way to code high-level programs.
One disadvantage is that evaluation order is not inherently specifiable; an extra notation is usually required. Another disadvantage is that computational suspensions must be kept around conservatively until explicitly worked out that they are not needed.
This page is linked from: Cayenne Clean Graph Reduction Referential Transparency and State Sigil