<p>I have long been wondering why lazy evaluation is useful. I have yet to have anyone explain to me in a way that makes sense; mostly it ends up boiling down to "trust me".</p>

<p>Note: I do not mean memoization. </p>

Consider this:
```
```
if (conditionOne && conditionTwo) {
  doSomething();
}
```
```
The method doSomething() will be executed only if conditionOne is true
and
conditionTwo is true.
In the case where conditionOne is false, why do you need to compute the result of the conditionTwo? The evaluation of conditionTwo will be a waste of time in this case, especially if your condition is the result of some method process.
That's one example of the lazy evaluation interest...