> Using map you always end up using lambda functions to pass constant > arguments to the mapping function like this: > > map( lambda x,y=K: f(x,y), L ) This can now done by writing instead: map(lambda x: f(x, K), L) or if you don't want the lambda, you can use a list comprehension: [f(x, K) for x in L] > What I propose in this patch is to have map recognize its keyword > arguments like this: > > map( f, L , y=K ) > > The result would be: > def map( f, L, **kw ): # accepts only one list for simplicity > l=[] > for i in L: > l.append( f(i,**kw) ) > return l > > While it doesn't solve every problem (passing a value to the first arg) > it could help remove many uses of lambda functions. While your patch scores high in minimal changes to the implementation, I don't like the resulting notation. While map(f, L) is reasonably natural, map(f, L, y=K) is not. Also, most C functions don't accept keyword arguments, so this won't help as much in the case where there's a speed reason for avoiding lambdas and list comprehensions. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4