[ create a new paste ] login | about

Link: http://codepad.org/cAYAW0vW    [ raw code | output | fork ]

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:
1
2
3
4
5
6
7
8
9
<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


Create a new paste based on this one


Comments: