<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 22, 2015 at 7:24 PM, Oleg <span dir="ltr"><<a href="mailto:oleg@okmij.org" target="_blank">oleg@okmij.org</a>></span> wrote:<br><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
</span>Let us take a step back. The article on my web page noted the great<br>
difficulty of writing AI search program in Haskell because the search<br>
tree is evaluated lazily: whenever a node is evaluated, its result is<br>
memoized for further use. That is precisely the wrong thing to do for<br>
such problems. Again, this problem is precisely of lazy evaluation (as<br>
defined in the book below). The obvious way to avoid memoization was<br>
to introduce thunks -- which didn't work. The article then developed a<br>
more involved solution. Yes, -no-full-laziness would have worked just<br>
as well. However, the solution in the article works on the<br>
case-by-case basis whereas -no-full-laziness affects the whole<br>
compilation unit. It is for that reason that I pointed out the article<br>
in this discussion.</blockquote></div><br>Dear Oleg: First you paint with a wide brush that laziness is "precisely the wrong thing to do for such problems." <br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Then you implicitly acknowledge that there are different levels of laziness, namely that non-full-laziness is less lazy than full laziness. Call them laziness Levels 1 and 2, respectively<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Finally, you cite your local solution as an improvement to the blunt one of throttling the whole module to mere laziness Level 1.<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Therefore, the clever Level 1 localization is an improvement only if laziness Level 2 is useful in other parts of the module, yes?<br><br></div><div class="gmail_extra">How can laziness be so bad, as the shrillness of your emails convey, if a laziness Level /2/ -- never mind Level 1 -- is actually useful elsewhere in your code?<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Notwithstanding your eagerness to warn of the pitfalls of laziness, your true position on laziness is undoubtedly nuanced in a manner that befits your discernment and decades of programming experience.<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Unfortunately, here you don't express that nuance clearly, and we are left in the dark.<br></div><br clear="all"><div class="gmail_extra"><div><div class="gmail_signature">-- Kim-Ee</div></div>
</div></div>