<div>I am having hard time understanding the following paragraph in &quot;Purely functional Lazy non-deterministic  programing&quot; paper  <a href="http://www.cs.rutgers.edu/~ccshan/rational/lazy-nondet.pdf">http://www.cs.rutgers.edu/~ccshan/rational/lazy-nondet.pdf</a></div>
<div><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">The problem with the naive monadic encoding of non-determinism is that the arguments to a constructor must be deterministic. If these arguments are themselves results of non-deterministic computations, these computations must be performed completely before we can apply the constructor to build a non-deterministic result.<br>
</blockquote><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Helvetica"><br></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Helvetica"><br></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Helvetica">
<span class="Apple-style-span" style="font-size: small;">Why does the argument to constructors must be deterministic?    WHy is it that thunks are not used in this case?</span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Helvetica">
<span class="Apple-style-span" style="font-size: 13px;"><br></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Helvetica"><span class="Apple-style-span" style="font-size: 13px;">Thanks</span></p><br>-- <br>
Daryoush<br><br>Weblog:  <a href="http://onfp.blogspot.com/">http://onfp.blogspot.com/</a><br>