此函数f接受参数列表,并返回具有相同参数列表的另一个可调用对象,以便可以将其他函数应用到该参数列表。
from operator import add, mul
def f(*a, **kw):
return lambda g: g(*a, **kw)
map(f(3, 10), (add, mul)) # -> [13, 30]
你怎么称呼
f
?这是某种组合器吗? 最佳答案
组合器是curried的apply形式。与(不推荐使用的)内置函数apply
相比,f
反转了参数的顺序,使其更有用,它为functools.partial函数提供了双重功能。
关于python - 这个组合器有名字吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8052958/