def partialize(f, p):
    return lambda *args: f(p, *args)

def add(a, b):
    return a + b

def add3(a, b, c):
    return a + b + c

myadd = partialize(add, 21)
print(myadd(21)) # -> 42

superadd = partialize(partialize(add3, 14), 14)
print(superadd(14)) # -> 42
