[Python-ideas] a new lambda syntax
starwing
weasley_wx at qq.com
Mon Oct 19 15:33:06 CEST 2009
In ruby, we can add a lambda function into a function call. but it's a
little ugly:
[1,2,3,4].each { |x|
print x
}
but, it really convenient. current lambda only support single line
syntax. it's not very good. maybe we can add a new syntax:
call: primary "(" argument-list ")" [ "lambda" parameter-list ":" suite ]
the postfix lambda will translate to a single "function" object, and
pass to the &arg parameter of function. so the function call will become
func(*arg1, **arg2, &arg3)
for example, we can write this:
def print_list(*lists, &func = lambda x: true):
for item in lists:
map(a) lambda x:
if func(x):
print x
call with:
print_list([1,2,3], [1,2]) lambda x:
if x % 2: return True
else return False
More information about the Python-ideas
mailing list