The sieve is just one example.  The basic idea is that for some
infinite generator (even a very simple one) you want to cut it off
after some point.  As for the number of characters, I spelled lambda
incorrectly (left out a b) and there should be a space after the colon
to conform to design guides.  So, actually the takewhile version is
two characters longer, not counting "import itertools" of course!

On Mon, Jan 19, 2009 at 11:44 AM, Daniel Stutzbach
<dan...@stutzbachenterprises.com> wrote:
> On Mon, Jan 19, 2009 at 10:37 AM, Gerald Britton <gerald.brit...@gmail.com>
> wrote:
>>
>>    prime = (p for p in sieve() while p < 1000)
>>    prime = takewhile(lamda p:p<1000, sieve())
>
> I'm pretty sure the extra cost of evaluating the lambda at each step is tiny
> compared to the cost of the sieve, so I don't you can make a convincing
> argument on performance.
>
> Also, you know the latter is actually fewer characters, right? :-)
>
> --
> Daniel Stutzbach, Ph.D.
> President, Stutzbach Enterprises, LLC
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to