Carl Johnson cmjohnson.mailinglist@gmail.com writes:
we could introduce an empty set-literal and an odict-literal, and add a more explicit form to replace the existing set literal.
What do you mean by “more explicit”? The existing set literal syntax is quite explicit.
s{} could be the empty set, o{} could be an empty odict, and we could leave {} alone as the form for dicts. So, an odict literal would look like o{'a':'1', 'b':'2', 'c':'3'} instead of OrderedDict([('a', '1'), ('b', '2'), ('c', '3')]). And the set {'a', 'c', 'b'} could (optionally?) have a little s{'a', 'c', 'b'} to make it more explicit that this is a set, not a dict.
I don't think that word “explicit” means what you think it means.
So what do people think? Is this too ugly to do?
You haven't really identified a problem that is solved by this. And yes, I think it's significantly uglier than the existing syntax.
Does it confuse users who are used to C-style braces? Or is it a logical extension of the b"", r"", etc. system that could help make things follow EIBI better?
(Presuming you mean “EIBTI”, for “Explicit Is Better Than Implicit”.)
I don't see anything implicit about the following forms:
set() OrderedDict() frozenset()
So I think you're trying to achieve something else other than “explicit”, but I don't know what it is, nor what the problem is that needs addressing.