def partial(f, g): def fg(*x): return f(g, *x) return fg def fs(f, *x): return [ f(a) for a in x] def f1(a): return a * 2 def f2(a): return a * a fsf1 = partial(fs, f1) fsf2 = partial(fs, f2) print fsf1(1, 2, 3, 4) print fsf2(1, 2, 3, 4)