Python is DOOMED! Again!

Chris Angelico rosuav at gmail.com
Sat Feb 7 20:01:04 EST 2015


On Sun, Feb 8, 2015 at 11:45 AM, Albert van der Horst
<albert at spenarnc.xs4all.nl> wrote:
> def square(x): x**2
> but
> square = x->x**2
>
> or
>
> mult  = x,y ->
>    result = 0
>    for i in range(x):
>       result +=y
>    return result
>
> doing away with the ternary operator def
>
> def .. ( .. ) : ..
>
> replacing it by two binary operators, one of them (=) being thoroughly familiar.

Thing is, "def" isn't just assignment. It also takes the name and
stores it in the object. There's a distinct and visible difference
between:

def square(x): return x**2

and

def func(x): return x**2
square = func

So if you were to use your alternate syntax everywhere, you'd
basically be throwing away all the benefits of def over lambda.

Now, you may well be able to justify and implement an alternative for
lambda that works this way. (And it's probably already been done, too.
Maybe using the actual symbol λ rather than ->.) But I don't think
you'll get anywhere with def.

ChrisA



More information about the Python-list mailing list