Syntax for one-line "nonymous" functions in "declaration style"
Alexey Muranov
alexey.muranov at gmail.com
Thu Mar 28 15:56:02 EDT 2019
On jeu., mars 28, 2019 at 5:00 PM, python-list-request at python.org wrote:
> On 2019-03-27 10:42 a.m., Paul Moore wrote:
>> On Wed, 27 Mar 2019 at 12:27, Alexey Muranov
>> <alexey.muranov at gmail.com> wrote:
>>> On mer., mars 27, 2019 at 10:10 AM, Paul Moore
>>> <p.f.moore at gmail.com>
>>> wrote:
>>>> On Wed, 27 Mar 2019 at 08:25, Alexey Muranov
>>>> <alexey.muranov at gmail.com> wrote:
>>>>> Whey you need a simple function in Python, there is a choice
>>>>> between a
>>>>> normal function declaration and an assignment of a anonymous
>>>>> function
>>>>> (defined by a lambda-expression) to a variable:
>>>>>
>>>>> def f(x): return x*x
>>>>>
>>>>> or
>>>>>
>>>>> f = lambda x: x*x
>>>>>
>>>>> It would be however more convenient to be able to write instead
>>>>> just
>>>>>
>>>>> f(x) = x*x
>>>> Why? Is saving a few characters really that helpful? So much so
>>>> that
>>>> it's worth adding a *third* method of defining functions, which
>>>> would
>>>> need documenting, adding to training materials, etc, etc?
>>> Because i think i would prefer to write it this way.
>> That's not likely to be sufficient reason for changing a language
>> that's used by literally millions of people.
>>
>>> (Almost no new documentation or tutorials would be needed IMHO.)
>> Documentation would be needed to explain how the new construct
>> worked,
>> for people who either wanted to use it or encountered it in other
>> people's code. While it may be obvious to you how it works, it
>> likely
>> won't be to others, and there will probably be edge cases you
>> haven't
>> considered that others will find and ask about.
>
> For what it's worth, if I encountered "f(x) = x * x" in code, my first
> thought would be that Python somehow added a way to return an
> assignable
> reference from a function, rather than this being an anonymous
> function
> declaration.
>
> So documentation of that syntax would 100% be required
>
> Alex
>
The thing to the right of the assignment symbol represents a value (an
object), but the thing to the left does not represent a value, it
represents a place for a value.
What would an "assignable reference" mean? Say, variable "x" holds an
"assignable reference", what can be done next?
Alexey.
More information about the Python-list
mailing list