On Wed, Dec 1, 2021 at 7:51 AM Chris Angelico <ros...@gmail.com> wrote:

> On Wed, Dec 1, 2021 at 10:30 PM André Roberge <andre.robe...@gmail.com>
> wrote:
>
> >> 2) Independently: Is the syntactic distinction between "=" and "=>" a
> >> cognitive burden?
> >
> > Yes.
> > I really think that using a keyword like defer, or from_calling_scope
> ;-), would significantly reduce the cognitive burden.
>
> Also fair. I'm not a fan of keywords for this sort of thing, since it
> implies that you could do this:
>
> def f(x=defer []): ...
>
> dflt = defer []
> def f(x=dflt): ...
>
> which is a completely different proposal (eg it would be evaluated
> only when you "touch" that, rather than being guaranteed to be
> evaluated before the first line of the function body). That's why I
> want to adorn the equals sign and nothing else.
>

Shouldn't the PEP contain a rejected idea section where this could be
mentioned?



>
> >> 4) If "no" to question 1, is there some other spelling or other small
> >> change that WOULD mean you would use it? (Some examples in the PEP.)
> >
> >
> > *Perhaps* if a keyword would be used instead of symbols, I might
> reconsider.
> >
> > I find the emphasis of trying to cram too much information in single
> lines of code to be really a burden. Many years ago, I argued very
> unsuccessfully for using a 'where:' code block for annotations.  (To this
> day, I still believe it would make the code much more readable, at the cost
> of a slight duplication.)  Using what is at first glance a cryptic operator
> like => for late binding is not helping readability, especially when type
> annotations are thrown in the mix.
> >
> > Aside: at the same time, I can see how using => instead of lambda as a
> potential win in readability, including for beginners.
>
> It's interesting how different people's views go on that sort of
> thing. It depends a lot on how much people expect to use something.
> Features you use a lot want to have short notations, features you
> seldom use are allowed to have longer words.
>
> I rarely use lambda in my own code, and have never written a line of code
anywhere that uses a '=>' operator.

If Python had a 'function' keyword instead of 'lambda', I would prefer to
keep the function keyword instead of adding => as a symbol.  For me, it is
not a question of terseness for commonly used features, but one of easing
the learning curve.  Starting from zero, I do believe that => would be
easier to grasp than learning about lambda as a keyword and the syntactic
rules to use with it.  With function as a keyword, I believe that it is the
other way around.  No doubt many others will disagree!

André Roberge

> _______________________________________________
> 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/WTU355AA46KWI6QJNMC3HR52SEEXQS65/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
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/AS7PEMRTLV4BR6NA6VP3UQALYTCMDWLG/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to