Picked up on this link while I go thru my backlog of blog enties, thought it would be an interesting approach. I am not too sure how well it can be applied to other languages but it’s worth a read.
Lazy programming is a general concept of delaying the processing of a function or request until the results are needed. This concept has numerous applications, from the obvious to the obscure. Thinking in terms of lazy programming can help you rid your code of unneeded computation and restructure programs to be more problem-oriented.
—Lazy Programming by Jonathan Bartlett (IBM – developerWorks)