<br><br><div><span class="gmail_quote">On 3/10/06, <b class="gmail_sendername">Edgar Antonio Rodriguez Velazco</b> &lt;<a href="mailto:edgar.antonio.rv@gmail.com">edgar.antonio.rv@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="direction: ltr;">Hi,<br>Could you please explain this code?.<br><br>f = lambda n: n-1 + abs(n-1) and f(n-1)*n or 1</div></blockquote><div><br>
This is why lambdas are evil. Officially, they are for creating
&quot;anonymous functions&quot;; usually they only succeed in creating obscure
unreadable drek. In My Humble Opinion. <br>
<br>
Okay - start from the middle and work our way through:<br>
<br>
n is your variable that you're passing as an argument to this unnamed function.<br>
<br>
say, n were 10.<br>
<br>
n-1 is 9<br>
add EITHER:<br>
absolute value of n-1 AND do a recursive call to f on 9 (and then on 8, and then on 7...), multiplied by n <br>
OR add 1. &nbsp;<br>
<br>
if you type it into your interpreter, here's the result:<br>
&gt;&gt;&gt; n = 10<br>
&gt;&gt;&gt; f = lambda n: n-1 + abs(n-1) and f(n-1)*n or 1<br>
&gt;&gt;&gt; print f(n)<br>
3628800<br>
<br>
Yuck. I hate reading lambdas. Personally, I think it's buttugly.<br>
<br>
Anna<br>
</div></div><br>