[Python-Dev] syntactic support for sets (original) (raw)

Donovan Baarda abo at minkirri.apana.org.au
Mon Feb 6 15:42:31 CET 2006


On Mon, 2006-02-06 at 15:36 +0100, Ronald Oussoren wrote:

On Monday, February 06, 2006, at 03:12PM, Donovan Baarda <abo at minkirri.apana.org.au> wrote:

>On Fri, 2006-02-03 at 20:02 +0100, "Martin v. Löwis" wrote: >> Donovan Baarda wrote: >> > Before set() the standard way to do them was to use dicts with None >> > Values... to me the "{1,2,3}" syntax would have been a logical extension >> > of the "a set is a dict with no values, only keys" mindset. I don't know >> > why it wasn't done this way in the first place, though I missed the >> > arguments where it was rejected. >> >> There might be many reasons; one obvious reason is that you can't spell >> the empty set that way. > >Hmm... how about "{,}", which is the same trick tuples use for the empty >tuple? Isn't () the empty tuple? I guess you're confusing this with a single element tuple: (1,) instead of (1) (well actually it is "1,")

Yeah, sorry.. nasty brainfart...

BTW. I don't like your proposal for spelling the empty set as {,} because that is entirely non-obvious. If {1,2,3} where a valid way to spell a set literal, I'd expect {} for the empty set.

yeah... the problem is differentiating the empty set from an empty dict. The only alternative that occured to me was the not-so-nice and not-backwards-compatible "{:}" for an empty dict and "{}" for an empty set.

-- Donovan Baarda <abo at minkirri.apana.org.au> http://minkirri.apana.org.au/~abo/



More information about the Python-Dev mailing list