On Tue, 17 Nov 2020 at 03:52, Steven D'Aprano <st...@pearwood.info> wrote:
> Here is a more representative example, borrowed from here: > > https://gvanrossum.github.io//docs/PyPatternMatching.pdf > > > match node: > case BinOp(Num(left), '+', Num(right)): > return Num(left + right) > case BinOp(left, '+' | '-', Num(0)): > return simplify(left) > case UnaryOp('-', UnaryOp('-', item)): > return simplify(item) > case _: > return node > > > which becomes this with the "as" proposal: > > > match node: > case BinOp(Num(as left), '+', Num(as right)): > return Num(left + right) > case BinOp(as left, '+' | '-', Num(0)): > return simplify(left) > case UnaryOp('-', UnaryOp('-', as item)): > return simplify(item) > case _: > return node > Well, I like the idea to have a keyword instead of a sigil, but `as` does not sounds good in English IMO. For example, in the `with` statement, it's with x as y: [code] I see the pattern matching code and I ask myself: where is the x? PS: pattern matching, for a mere mortal like me, seems to be something very exotical. That's why an explicit, even if verbose, additional keyword seems to me better for reading and understanding the code. For my eyes, it's the same difference between x = y ? z : w and x = y if z else w
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/6HPPFZNEEAWVPHC5XRA7TVPXKASF7AXW/ Code of Conduct: http://python.org/psf/codeofconduct/