<br><br><div class="gmail_quote">On Thu, Dec 10, 2009 at 3:30 PM, John D. Earle <span dir="ltr">&lt;<a href="mailto:JohnDEarle@cox.net">JohnDEarle@cox.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
My intuition says that laziness and purity are distinct whereas yours says that purity is a necessary condition. This is what needs to be reconciled.<br></blockquote><div><br></div><div>I think laziness requires purity to make sense. Laziness implies that the order of evaluation is highly unpredictable and depends strongly on the implementation details of libraries and such (which you may not have access to). So it&#39;s fickle. Someone adds an if statement somewhere and all of a sudden a variable gets evaluated earlier than it used to. It would be madness to write any code which depends on this unpredictable behaviour. In other words, the expressions that get evaluated lazily must not have side effects.</div>
</div><br>-- <br>Sebastian Sylvan<br>