Maintaining referential transparency
In the previous lesson, we saw how important referential transparency is for functional programming. If we want referential transparency, we must push the side effects to the boundaries of our system (program). This can be done by using lazy evaluation.
Let’s see what lazy evaluation is by repeating the example from the previous lesson in a different way.