On Sun, Oct 3, 2021 at 9:04 AM Abdulla Al Kathiri <alkathiri.abdu...@gmail.com> wrote: > > Yeah empty parentheses for parameters-less function is the clear obvious way. > Optional parenthesis for single parameter function is a wise choice. In fact, > I read C# lambdas and they made really great design choices. I particularly > like the statements lambda. How about doing it in Python with the set syntax > and a little twist? The last item of the lambda set is the return value. > Something like the following: > (x, y) => {z = x + y, a = sqrt(z) - 10, a} > The return value will be a. Basically if the last item is an expression, the > return value will be the value of the expression. If the last item is an > assignment statement, then the return value will be None. Only assignment > statements and expressions are allowed. Other statements like for loop or > with statement are too much anyways for lambda set. C# docs advise against > using more than 3 statements in their statements lambda. >
I don't like the ambiguity here - using a comma there is going to be annoying with tuple creation. And yes, that would be an extremely likely use-case, for example: people.sort(key=lambda p: (p.salary, p.name, p.id)) IMO assignment statements wouldn't be needed here. For things too complicated for assignment expressions, use def. ChrisA _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@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/NKNQCDQGCUCYO43MQKPHD6BMZ32P365S/ Code of Conduct: http://python.org/psf/codeofconduct/