Beni Cherniavsky <beni.cherniav...@gmail.com> 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 <n...@craig-wood.com> -- http://www.craig-wood.com/nick -- http://mail.python.org/mailman/listinfo/python-list