Beni Cherniavsky <[email protected]> wrote:
> This proposal outrageously suggests a special syntax for in-line
> functions passed as keyword arguments::
>
> >>> sorted(range(9), key(n)=n%3)
> [0, 3, 6, 1, 4, 7, 2, 5, 8]
>
> The claim is that such specialization hits a syntax sweet spot, and
> that this use case is frequent enough to contemplate eventually making
> it the only in-line function syntax.
-1 from me.
I think that lambda / inline functions should be discouraged as it
moves python away from, "there should be one-- and preferably only one
--obvious way to do it." IMHO Guido was right in his original impulse
to kill this second class way of making functions...
I would write the above as
def compute_key(n):
"Compute the sort key so that x, y and z are true"
return n % 3
sorted(range(9), key=compute_key)
Which I think is clearer and more obvious. It gives you the
opportunity for a docstring also.
Yes it is a bit more typing, but who wants to play "code golf" all
day?
--
Nick Craig-Wood <[email protected]> -- http://www.craig-wood.com/nick
--
http://mail.python.org/mailman/listinfo/python-list