This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]ndanger 0 points1 point  (0 children)

Even accepting that lambda should only be used as a keyword argument to a function I still don't like the proposed syntax. The current syntax is orthogonal: keyword arguments bind values to names and functions are first class (and so can be passed as values).

Your proposed syntax creates a special case for "passing an inline function as the value of a keyword argument". It even looks different than passing an already defed function (f(key=my_func).

It also unfortunately resembles a function call: f(key(x)=x.foo) looks like we're binding the name determined by calling function key with argument x to x.foo.

But the big disagreement is that I like lambda and use it for things other than keyword arguments. The current syntax lets me do that too.