Lazy evaluation is an important technique in functional programming. There is a entertaining article on functional programming here . I was thinking about lazy evaluation the other day, and the issues of processing huge text files using streaming techniques,