On 21Jan2022 01:16, MRAB <pyt...@mrabarnett.plus.com> wrote:
>On 2022-01-21 00:18, Cameron Simpson wrote:
>>This all feels to me like a special case of "wanting a constant for
>>bytecode".  What is we had a "freeze" operator, eg:
>>     |foo|
[...]
>>Paired with a __freeze__ dunder method, this applies to any type, not
>>just sets. (Where appropriate of course.)
>>     |{1,2,3}|       frozen set
>>     |[1,2,3]|       tuple!
>>     |any-iterable|  tuple!
>>     |{1:2, 3:4}|    frozen dict
[...]
>>My main question is: is the syntax unambiguous?
>>
>I don't know whether it's unambiguous, but it could be confusing.
>
>For example, what does this mean:
>    | a | b |
>?

Yeah.

>It's:
>    | (a | b) |
>I think.

Probably. Running precedence the other way (or even worse, letting the 
valid combinations just shake out) would be confusing.

>The problem is that '|' could be an opening '|', a closing '|', or an 
>infix '|'.
>
>You don't get this problem with differing open and closing pairs such 
>as '(' and ')'.

Yes, but have you _seen_ the bickering about the existing bracket 
choices just for frozenset? Eww. Hence the going for a distinct operator 
altogether. Yes, I'd prefer brackets of some kind too, but they're 
taken.

Cheers,
Cameron Simpson <c...@cskk.id.au>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/FZN74PZJBZCLULMT5AMTT6MP2L6RCENP/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to