[Python-Dev] New PEP

Huan Do doboy0 at gmail.com
Thu Mar 22 01:28:17 CET 2012


@Ethan Furman

each call to x(:) would return a different iterator, so both sides will
have their own information about where they are. Also it is the case that
checking for equality of generators does not make the generators to expand
out, so checking for equality becomes to checking if they are the same
generator object. The following example shows this

Python3
>> (x for x in range(10)) == (x for x in range(10))
False

@Etienne

"lambda" is a keyword and would get captured by the lexer, so this should
conflict with adding the grammar that would make this work. This is
different than function calls because currently arguments of function calls
cannot have ":", causing `x(:)` to be a syntax error. The grammar that
would have to be added would be mutually exclusive from current
functionality.

@Victor

I was not completely familiar with itertools but itertools.islice() seems
to have the functionality that I propose. It is great that  there already
exist a solution that does not change python's syntax. Unless anyone wants
to pursue this proposal I will drop it next week.

Thanks for your feedback guys

On Wed, Mar 21, 2012 at 5:09 PM, Ethan Furman <ethan at stoneleaf.us> wrote:

> Huan Do wrote:
>
>> *Hi,
>>
>>
>> I am a graduating Berkeley student that loves python and would like to
>> propose an enhancement to python. My proposal introduces a concept of
>> slicing generator. For instance, if one does x[:] it returns a list which
>> is a copy of x. Sometimes programmers would want to iterate over a slice of
>> x, but they do not like the overhead of constructing another list. Instead
>> we can create a similar operator that returns a generator. My proposed
>> syntax is x(:). The programmers are of course able to set lower, upper, and
>> step size like the following.
>>
>> x(1::-1)
>>
>
> The biggest problem with your proposal is that generators don't remember
> what they have already yielded, so
>
> x(:) != x(:) # first time gets everything, second time gets nothing
>
> ~Ethan~
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20120321/072d45c9/attachment.html>


More information about the Python-Dev mailing list