<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, May 25, 2016 at 7:52 AM, Nick Coghlan <span dir="ltr"><<a href="mailto:ncoghlan@gmail.com" target="_blank">ncoghlan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="">On 25 May 2016 at 15:11, Chris Angelico <<a href="mailto:rosuav@gmail.com">rosuav@gmail.com</a>> wrote:<br>
> On Wed, May 25, 2016 at 3:03 PM, Stephen J. Turnbull <<a href="mailto:stephen@xemacs.org">stephen@xemacs.org</a>> wrote:<br>
>> How about<br>
>><br>
>>     for <thing>:<br>
>>         try <matcher>:<br>
>>             pass<br>
>>         try <matcher>:<br>
>>             pass<br>
>><br>
>> Look Ma!  No new keywords!  Yeah, I know, "for" and "try" both have<br>
>> very strong connotations in Python already, so this may be a "not even<br>
>> the Dutch could like it" automatic-parser-only syntax.<br>
><br>
> I'd much prefer a different keyword instead of 'for'. If 'with' hadn't<br>
> been used, that would be a better choice. Maybe 'using'... or<br>
> 'switch'. But without iteration, 'for' is going to be very confusing.<br>
<br>
</span>As a variant on Guido's original switch/case idea:<br>
<br>
    given EXPR [as TARGET]:<br>
        case MATCH_PATTERN [as TARGET] [and CONDITION]:<br>
            ...<br>
        case MATCH_PATTERN [as TARGET] [and CONDITION]:<br>
            ...<br>
        case if CONDITION:<br>
            ...<br>
        case MATCH_PATTERN [as TARGET]:<br>
            ...<br>
        else:</blockquote><div><br></div><div>Just a small comment regarding the possible new keyworks:</div><div><br></div><div>I very much prefer to use 'given' and 'when' instead of 'switch' and 'case':</div><div><br></div><div> given EXPR [as TARGET]:<br>        when MATCH_PATTERN [as TARGET] [and CONDITION]:<br>            ...<br>        when MATCH_PATTERN [as TARGET] [and CONDITION]:<br>            ...<br>        when if CONDITION:<br>            ...<br>        when MATCH_PATTERN [as TARGET]:<br>            ...<br>        else:<br></div></div><br></div><div class="gmail_extra">One reason for this is that 'given' and 'when' are less likely to collide with existing variable names. In fact, there are already variables named 'switch' and 'case' in the standard Python distribution. I haven't found any for 'given' and 'when'.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Also, given .. when is already used in Perl 5 [1] and 6 [2].</div><div class="gmail_extra"><br></div><div class="gmail_extra">Another alternative is to reuse 'if' instead of 'when'. But I'm not sure if that would make things very confusing.</div><div class="gmail_extra"><br></div><div class="gmail_extra">[1] <a href="http://perldoc.perl.org/perlsyn.html#Switch-Statements">http://perldoc.perl.org/perlsyn.html#Switch-Statements</a></div><div class="gmail_extra">[2] <a href="https://doc.perl6.org/language/control#given">https://doc.perl6.org/language/control#given</a></div><div class="gmail_extra"><br></div><div class="gmail_extra">Manuel.</div></div>