
Great point Valentin. I do think it's worthwhile to allow capturing variadic sub-patterns while destructuring. For symmetry with variadic function arguments (*args) I would actually suggest accumulating all the values using a tuple and bind that tuple to the name, but I'm not precious about using a tuple vs a list. Bikesheddable imo. Something I forgot to mention in the original proposal is that unlike with variadic function arguments where you can only have variadic positionals once in the signature, in a pattern the following should be valid: match heterogenous: case [ *str() as strings, 3, *bool() ] Where 'heterogenous' should match an iterable starting with zero or more strings and bind them to (subject to bikeshedding) a tuple with the name 'strings', followed by the integer 3, followed by zero or more booleans. On Tue, Sep 13, 2022 at 3:17 PM Valentin Berlier <berlier.v@gmail.com> wrote:
I really like this. One problem though is that it's not immediately obvious what happens with binding patterns and "as" clauses. In the code inside the case statement, should these identifiers refer to the last value matched, or should they accumulate all the matches in a list? _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@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/U6TBMZ... Code of Conduct: http://python.org/psf/codeofconduct/