
On Fri, Jun 26, 2020 at 3:47 AM Paul Moore <p.f.moore@gmail.com> wrote:
For me, this prompts the question (which I appreciate is more about implementation than design) - would there be any (significant) performance difference between [...]
In C, the switch statement was explicitly intended to be faster by means of doing a computed branch. In a higher level language, I can see the added features of match meaning that it's *slower* than a series of if tests for simple cases. But I have no intuition about the performance of this proposal. I'd like to believe that the choice between the 2 alternatives above is purely a matter of preferred style, but I don't know. If match is significantly slower, that could make it a bit of an attractive nuisance.
Each case essentially compiles down to an equivalent if structure, already. There's no penalty that I'm seeing. There's actually much more room for optimizing eventually, since the test is bound to a single element instead of any arbitrary if expression, and a Cython or PyPy could work some magic to detect a small set of primitive types and optimize for that.