On 23.02.2021 15:29, Paul Moore wrote:
> On Tue, 23 Feb 2021 at 14:10, M.-A. Lemburg <m...@egenix.com> wrote:
>>
>> The natural way in Python to write an anonymous function would
>> be to simply drop the name in a regular function definition:
>>
>> def (a): return a**2
>>
>> The lambda notation is less verbose and closer to computer
>> science theory, though:
>>
>> lambda a: a**2
>>
>> FWIW: I don't understand why people are so unhappy with lambdas.
>> There isn't all that much use for lambdas in Python anyway. Most
>> of the time, a named function will result in more readable code.
> 
> Typically because they are simple expressions like the a**2 you used above.
> 
> def a_squared(a):
>     return a**2
> 
> is way over the top.

Fair enough. Although as soon as you use the same such function
more than once in your application, giving it a name does make
sense :-)

> Thinking about it, maybe the *real* solution here is to use one of the
> "placeholder variable" libraries on PyPI - there's "placeholder" which
> I found on a quick search:
> 
>     from placeholder import _     # single underscore
> 
>     _.age < 18     # lambda obj: obj.age < 18
>     _[key] ** 2    # lambda obj: obj[key] ** 2
> 
> Some people will hate this sort of thing - probably the same people
> who can't see why anyone has a problem with lambda - but it doesn't
> need a language change, and it's available now.
> 
> I guess I've convinced myself here - we already have shorter
> alternatives to lambda, so why add a new built-in one?

People should have a look at the operator module. It's full of
short (and fast) functions for many things you often write
lambdas for:

https://docs.python.org/3/library/operator.html

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Experts (#1, Feb 23 2021)
>>> Python Projects, Coaching and Support ...    https://www.egenix.com/
>>> Python Product Development ...        https://consulting.egenix.com/
________________________________________________________________________

::: We implement business ideas - efficiently in both time and costs :::

   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               https://www.egenix.com/company/contact/
                     https://www.malemburg.com/
_______________________________________________
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/AMX7IPZEGVXSK45JNSJP72RFMLEWKXM7/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to