<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 17 April 2014 21:31, Guido van Rossum <a href="http://guido-at-python.org">guido-at-python.org</a> |<a href="http://python-ideas-at-python.org">python-ideas-at-python.org</a>| <span dir="ltr"><<a href="mailto:gpb6b76ift@sneakemail.com" target="_blank">gpb6b76ift@sneakemail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I don't want to discourage you too much, but I think that adding a switch statement comes *very* low on the list of improvements we would like to make in Python 3.5.<br>

<br>We should probably focus on speed (or aspects of it, like startup), language features that help porting Python 2 code to it (e.g. bytes formatting), and things that improve the user experience of getting started with Python on a new machine (e.g. pip/venv).. Or perhaps stdlib issues like an asyncio-infused variation of WSGI.<br>

</div></blockquote><div><br>I completely agree.<br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">

<br>I've probably missed a few focus areas, but I still very much doubt we'll be adding a switch statement -- it's a "sexy" language design issue (like anonymous functions) but that's not what will help Python compete.<br>

</div></blockquote><div><br></div><div>Well, no, it will not be a "killer feature". But if you intend it's "sexy" because it's a syntax sugar, even if I'm not much experienced, I respectfully disagree. A switch-case statement is more DRY than an if-elif chain, in its use environment. Deltas are only quicker to code and potentially less DRY.<br>

<br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">On 17 April 2014 23:41, Andrew Barnert <a href="http://abarnert-at-yahoo.com">abarnert-at-yahoo.com</a> |<a href="http://python-ideas-at-python.org">python-ideas-at-python.org</a>| <span dir="ltr"><<a href="mailto:3en9kh2cbt@sneakemail..com" target="_blank">3en9kh2cbt@sneakemail.com</a>></span> wrote:<br>

Any reason to use the keywords that only exist in C-family languages when the functionality isn't actually like C?<br></blockquote><br></div><div>Well, it's the same for the "for" statement.<br><br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">

<div class="">
> - if case_expr is not a tuple, the case suite will be executed if switch_expr == case_expr<br>
> - if a case_expr is checked, any subsequent elcase statements are 
skipped, and the next case statement is performed, of there's one. This 
is completely identical to if - elif.<br>
<br>
</div>While you can figure out what this means with a bit of work, it 
seems to add a lot of conceptual complexity, and I can't think of any 
other language that does this.<br></blockquote></div><div><br></div><div>Bash case statement is similar. IMHO this syntax is very simple, simpler than C-like switch statements. Why do you think it is complex?<br><br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">

why not consider features that other languages do have, like pattern matching cases?<br></blockquote><div><br></div><div>I do not know much about pattern matching. Using my little knowledge, Python have recursive functions and regular expressions. You could also use generator expressions with my switch statement proposal. Symbolic pattern is powerful, but it's a bit too much for this little proposal.<br>

<br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"> if you want to match (1, 'b') you'd have to write case ((1, 'b'),). 
Which is bad for static cases, and even worse for dynamic ones.<br></blockquote><div><br></div><div>Yes, it's not so elegant, but I do not think that it will really matters in real world usage. What do you mean exactly with "dynamic cases"?</div>

</div></div><br></div><br></div></div>