Summary
Lazy evaluation is not only useful for functional programming, but it actually also has benefits for imperative programming. Using the lazy evaluation, we can have an efficient and faster code by implementing caching and optimizing techniques.
In the next chapter, we will talk about metaprogramming that we can use in the functional approach. We will discuss how to use metaprogramming to gain all its benefits, including code optimization.