On Tue, Oct 30, 2007 at 01:09:38PM +0100, Boris Borcic wrote regarding Re: Iteration for Factorials: > > Py-Fun wrote: > > I'm stuck trying to write a function that generates a factorial of a > > number using iteration and not recursion. Any simple ideas would be > > appreciated. > > > > fact = lambda n : len(map([1].__imul__,range(1,n+1))[0]) > > hth :) >
Nice one. I was trying to grok it, and started out by breaking it down: >>> [1].__imul__(2) [1, 1] >>> map([1].__imul__,range(1,3)) [[1, 1], [1, 1]] So far so good, but I tried to break it down a little more: >>> [1].__imul__(1), [1].__imul__(2), [1].__imul__(3) ([1], [1, 1], [1, 1, 1]) Hmm. Wasn't what I was expecting. Then it hit me: >>> L = [1] >>> L.__imul__(1), L.__imul__(2), L.__imul__(3) ([1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1]) Pretty sneaky, sis. Cheers, Cliff P.S. Regards to those who lack a grounding in American pop-culture, or who are to young to remember the origins of "Pretty sneaky, sis." -- http://mail.python.org/mailman/listinfo/python-list