Python,
pasted
on May 21:
|
def _convert_key(key):
return key
def rmap(func, sequence):
return [rmap(func, i) if isinstance(i, (tuple, list))
#elif isinstance(i, dict) ???
else func(i)
for i in sequence]
def func_replace(val):
func, indexes = val
indexes = rmap(_convert_key, indexes)
try:
return (lambda row: func(*rmap((lambda i: row[i]), indexes)))
except TypeError:
raise TypeError("Function %r is not callable" % (func))
good_lambda = func_replace((sum, ([1, 2, 3],)))
bad_lambda = func_replace(('totally not a function', (1,2,4)))
print(good_lambda)
print(good_lambda([3,5,1,2,5]))
print(bad_lambda)
print(bad_lambda([3,5,1,2,5]))
|
Output:
|
<function <lambda> at 0xf7429844>
8
<function <lambda> at 0xf742980c>
Traceback (most recent call last):
Line 27, in <module>
print(bad_lambda([3,5,1,2,5]))
Line 17, in <lambda>
return (lambda row: func(*rmap((lambda i: row[i]), indexes)))
TypeError: 'str' object is not callable
|
|