On Fri, Nov 27, 2020 at 4:34 PM Greg Ewing <greg.ew...@canterbury.ac.nz> wrote:
>
> On 27/11/20 1:23 pm, Chris Angelico wrote:
> >>
> >> That makes no sense as a phrase in English.
> >
> > Nor do lots of other constructs when they get combined. English
> > doesn't really have good parallels for most computing concepts.
>
> Python manages to not be wildly ungrammatical with the bits
> of English that it borrows, though.
> >
> > How will this "new assignment target" work with different forms of
> > assignment targets? For instance:
> >
> > for let k, stuff[k] in d.items():
> >     ...
>
> I was thinking it could only be put before a bare name and
> would only apply to that name. So if there are multiple targets
> in the assignment, you would need to mark each one that you
> want treated.
>

That'd be my expectation, too. Which would mean you could have:

for k, let v in d.items()

As such, I don't think it needs to be read as "for let". It's more
"let v". Maybe I'm weird for having spent a lot of time writing "for
(int i = 0; i < n; ++i)" in C++, but I don't see inline variable tags
as being overly problematic :)

But if it can be done in the loop header, and it's actually a part of
the assignment part (rather than being a keyword applying to the
entire loop), there's going to be people expecting to be able to do
this:

for let i in collections.Counter():
    let val = input("> ")
    def foo():
        print(i, val)
    functions.append(foo)

where the "let" could be equivalently applied to ANY variable name or
assignment. IMO that will need to be addressed in the PEP (either for
or against, but not silent).

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

Reply via email to