On Fri, 13 Nov 2020 at 15:53, Brandt Bucher <brandtbuc...@gmail.com> wrote:
> Paul Sokolovsky wrote: > > Use punctuation ("sigils") to mark as-binding terms. This choice still > seems to be under-considered. (As in: it doesn't seem like many people, > including the PEP authors, tried to say "indeed, what if?" and feel thru > it. I mean, try really hard. I trust the "gang of 4" spent maybe whole few > hours on that and delivered "no" to all us. It's still not the same as > dozens of people trying it over a few months). > > To anyone actually wondering how much time and mental energy we’ve spent > on a particular issue: please take a look at our tracker before guessing > “maybe whole few hours”: > > - Issue #1(!), April, 29 comments: > https://github.com/gvanrossum/patma/issues/1 > - Issue #90, June, 84 comments: > https://github.com/gvanrossum/patma/issues/90 > - Issue #92, June, 33 comments: > https://github.com/gvanrossum/patma/issues/92 > - Issue #105, June, 17 comments: > https://github.com/gvanrossum/patma/issues/105 > - Issue #143, August, 7 comments: > https://github.com/gvanrossum/patma/issues/143 > > (I won't judge anyone for skimming a bit; it's a *lot* of discussion. Do > note, though, that for months I was one of the proponents of store sigils > like `?` until I was eventually convinced otherwise.) > > That's also not counting side-discussions in other issues, countless > mailing list threads, two competing PEPs that make many of the same > choices, a video call with the SC, etc. > > I'll also add, for anyone considering choosing yet another ASCII symbol > off their keyboard and proposing it as a “novel”, “intuitive” marker: one > problem with most of the hastily suggested adornments are that they do not > nest very well, for even simple cases. Further, the fact that constructions > like `p = Point(x, y)` look exactly the same as deconstructions like `case > Point(x, y):` is absolutely intentional (which touches back on Guido’s > “rhyme” comment last night). > > Very briefly, compare the current syntax: > > ``` > case first, *middle, last: > rebuilt = first, *middle, last > case {"key": value, **rest}: > rebuilt = {"key": value, **rest} > case Point(x=a, y=b): > rebuilt = Point(x=a, y=b) > ``` > > with (using your own syntactic flavor): > > ``` > case >first, *>middle, >last: > rebuilt = first, *middle, last > case {"key": >value, **>rest}: > rebuilt = {"key": value, **rest} > case Point(x=>a, y=>b): > rebuilt = Point(x=a, y=b) > ``` > Well, this example is a bit unfair, since you don't present a case where there would be matching values in variables that we would want to compare - which is the solution that is being brought up. And even in that case, while I can see: case Point(x=>a, y=>b): and immediately read it as "attribute x from point goes into a", the line in the current proposal doing the same: case Point(x=a, y=b): is far from being immediately obvious (Am I creating a new Point? Am i assigning "a" to "x"? If so, where does "a" come from??) > (I had to stop and think *hard* where exactly the `>` should go in > `*middle` and `**rest`. I'm not confident I made the correct guess, either.) > _______________________________________________ > Python-Dev mailing list -- python-dev@python.org > To unsubscribe send an email to python-dev-le...@python.org > https://mail.python.org/mailman3/lists/python-dev.python.org/ > Message archived at > https://mail.python.org/archives/list/python-dev@python.org/message/7SJ2SOPRD6XOAISOYXONKXUKB3JMLYNU/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/KTRXIM7A3OATCHZZXBULLSNZZ3BNSGJK/ Code of Conduct: http://python.org/psf/codeofconduct/