<div dir="ltr">theres a very simple way to do non recursive let already! do notation in the identity monad. I use it quite a lot lately.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 10, 2013 at 1:49 PM, Ertugrul Söylemez <span dir="ltr"><<a href="mailto:es@ertes.de" target="_blank">es@ertes.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">"Ezra e. k. Cooper" <<a href="mailto:ezra@ezrakilty.net">ezra@ezrakilty.net</a>> wrote:<br>
<br>
> As starter suggestions for the keyword or syntax, I submit:<br>
><br>
> let new x = expr in body -- Not the old x!<br>
<br>
</div>It's not the old x in either case (recursive and non-recursive).<br>
<div class="im"><br>
<br>
> let shadowing x = expr in body<br>
><br>
> shadow x = expr in body<br>
<br>
</div>It's shadowing in either case.<br>
<div class="im"><br>
<br>
> let x =! expr in body -- The explosive bang gives an imperative<br>
> flavor.<br>
<br>
</div>(=!) is a valid operator name.<br>
<div class="im"><br>
<br>
> Other suggestions would be welcome.<br>
<br>
</div>My suggestion: Don't add a non-recursive let. See my other post about<br>
general recursion and totality checking.<br>
<br>
<br>
Greets,<br>
Ertugrul<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Not to be or to be and (not to be or to be and (not to be or to be and<br>
(not to be or to be and ... that is the list monad.<br>
</font></span><br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br></div>