[Python-3000] sets in P3K?
Paul Moore
p.f.moore at gmail.com
Sat Apr 29 12:16:57 CEST 2006
On 4/29/06, Nick Coghlan <ncoghlan at gmail.com> wrote:
> However, I'm now -0 on having a set literal at all, and it's because I believe
> we can solve this problem in a more general fashion that applies to more
> functions than just the set() constructor.
>
> Currently, [] and () can appear both standalone or following an expression
> (list literals and comprehensions, and subscripting for [], tuple literals and
> precedence manipulation, and function calls for ())
>
> {} however, can appear only standalone. It is not permitted for it to follow
> an expression. If we change that, we can use it to support an alternate
> invocation syntax for functions that currently expect an iterable as their
> first argument. "EXPR{ARGS}" would be equivalent to "EXPR((ARGS,))", with the
> following differences in the parsing of ARGS:
> x:y would be permitted, and map to a 2-tuple (x, y)
> x:y:z would be permitted, and map to a 3-tuple (x, y, z)
> x=y would be permitted, and map to a 2-tuple ('x', y)
> *x would be permitted, and would extend the passed in tuple with x
+1. This looks like a really nice option.
One downside, which I only point out because someone will, is that
optimization opportunities will be lost for the usual reason - the
optimizer can't be sure that set (or whatever) hasn't been reassigned.
But I still see that as something to be addressed independently, if at
all.
Paul.
More information about the Python-3000
mailing list