Oh, and one more thing: The cookbook version is the only one of the three which gives priority to kw args supplied at call-time over args supplied at create-time. eg. def f(color='black'): print color f2 = curry(f,color='blue') f2(color='red') The cookbook version will print 'red', Rainer and Alex both print 'blue'. (easy to change, of course)