此函数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?这是某种组合器吗?

最佳答案

组合器是curriedapply形式。与(不推荐使用的)内置函数apply相比,f反转了参数的顺序,使其更有用,它为functools.partial函数提供了双重功能。

关于python - 这个组合器有名字吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8052958/

10-12 20:14