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) ``` (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/