On 12/05/2018 23:52, Neil Girdhar wrote:
On Sat, May 12, 2018 at 5:54 PM Cameron Simpson <c...@cskk.id.au
<mailto:c...@cskk.id.au>> wrote:
On 06May2018 02:00, Nick Coghlan <ncogh...@gmail.com
<mailto:ncogh...@gmail.com>> wrote:
>On 5 May 2018 at 13:36, Tim Peters <tim.pet...@gmail.com
<mailto:tim.pet...@gmail.com>> wrote:
>> If only one trailing "given" clause can be given per `if` test
>> expression, presumably I couldn't do that without trickery.
>
>I was actually thinking that if we did want to allow multiple
assignments,
>and we limited targets to single names, we could just use a comma
as a
>separator:
>
> if diff and g > 1 given diff = x - x_base, g = gcd(diff, n):
> return g
>
>Similar to import statements, optional parentheses could be
included in the
>grammar, allowing the name bindings to be split across multiple
lines:
>
> if diff and g > 1 given (
> diff = x - x_base,
> g = gcd(diff, n),
> ):
> return g
I'm well behind, but... this! This turns "given" into a +0.8 for me.
That's really nice. It reads clearly too.
I was hitherto in the "expression as name" camp, which I gather is
already
rejected.
I love given, but that's the one thing I don't like. I prefer this:
if (diff and g > 1
given diff = x - x_base
given g = gcd(diff, n)):
return g
I don't like the consecutive "given"s. Reading it aloud in English
suggests to me that the second "given" should be evaluated before the
first, which I'm sure is not the intention.
(Just as I think that multiple for-loops inside a comprehension sound
the wrong way round. :-( But that ship has sailed.)
Rob Cliffe
—just like for and if subexpressions. Doing this can also open up
weirdness if someone tries to roll something like:
a = f(), # Make a tuple of length 1
into a given statement. Now, where do you up the parentheses?
given (
a = (f(),),
b = whatever?
)
Seems weird.
Cheers,
Cameron Simpson <c...@cskk.id.au <mailto:c...@cskk.id.au>>
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org <mailto:Python-ideas@python.org>
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/
--
---
You received this message because you are subscribed to a topic in
the Google Groups "python-ideas" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/python-ideas/CFuqwmE8s-E/unsubscribe.
To unsubscribe from this group and all its topics, send an email
to python-ideas+unsubscr...@googlegroups.com
<mailto:python-ideas%2bunsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
Virus-free. www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/