<div dir="ltr">Yes of course, it can be done. There is little difference when closure is made.<br><br>this second example can be rewritten (and simplified) in same manner:<br><br>UpToGen = fun(Max) -><br>              Outer = fun(_OSelf, Max) -> [];<br>
                                (OSelf, Step) -><br>                                     Inner = fun(_ISelf, N) when N>Max -> [];<br>
                                                    (ISelf, N) -> [N | ISelf(ISelf, N+Step) ]<br>                                     end,<br>                               [Inner(Inner, 0) | OSelf(OSelf, Step+1)]<br>

              end,<br>              Outer(Outer, 1)<br>  end.<br>   <br><div class="gmail_quote">On Tue, Oct 7, 2008 at 4:29 PM, David Mercer <span dir="ltr"><<a href="mailto:dmercer@gmail.com">dmercer@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">








<div link="blue" vlink="blue" lang="EN-US">

<div><div class="Ih2E3d">

<p><span style="color: navy;">On Tuesday, October 07, 2008, Hynek
Vychodil wrote:</span></p>

<p><span style="color: navy;"> </span></p>

<p style="margin-left: 0.5in;"><span style="color: navy;">> Is
there any problem write this think this way?</span></p>

</div><p style="margin-left: 0.5in;"><span style="color: navy;">. . .</span></p><div class="Ih2E3d">

<p style="margin-left: 0.5in;"><span style="color: navy;">> For
Example factorial:</span></p>

<p style="margin-left: 0.5in;"><span style="color: navy;">> </span></p>

<p style="margin-left: 0.5in;"><span style="color: navy;">> Fact
= begin F = fun(_, 0) -> 1; (Self, N) -> Self(Self, N-1)*N end, fun(N)
-> F(F, N) end end.</span></p>

<p><span style="color: navy;"> </span></p>

</div><p><span style="color: navy;">My only objection is that it pollutes
the shell variable space with the extra function F.  How about:</span></p>

<p><span style="color: navy;"> </span></p>

<p style="margin-left: 0.5in;"><span style="color: navy;">Fact =
fun(N) -> F = fun(_, 0) -> 1; (Self, N) -> Self(Self, N-1)*N end, F(F,
N) end.</span></p>

<p><span style="color: navy;"> </span></p>

<p><span style="color: navy;">Cheers,</span></p>

<p><span style="color: navy;"> </span></p><font color="#888888">

<p><span style="color: navy;">David</span></p>

</font></div>

</div>


</blockquote></div><br><br clear="all"><br>-- <br>--Hynek (Pichi) Vychodil<br>
</div>