Curry (aka partial function): Currying 是 functional programming 中把一個多參數的函式轉換成較少參數的函式的技巧。 Use "partial" in python2.5 {{{ >>> import functools >>> def add3(x,y,z): ... return x+y+z ... >>> curry = functools.partial >>> twoAdd2 = curry(add3,2) >>> twoAdd2(3,4) 9 >>> twoAddfiveAdd = curry(add3,2,5) >>> twoAddfiveAdd(3) 10 }}} implemented with lambda function (from: http://snippets.dzone.com/posts/show/2375): {{{ curry = lambda func, *args, **kw:\ lambda *p, **n:\ func(*args + p, **dict(kw.items() + n.items())) }}} Example: {{{ >>> def add3(x,y,z): ... return x+y+z ... >>> twoAdd2 = curry(add3,2) >>> twoAdd2(3,4) 9 >>> >>> twoAddfiveAdd = curry(add3,2,5) >>> twoAddfiveAdd(3) 10 }}} Other implementation: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52549 ---- CategoryCookbook