【问题标题】:Higher order function to apply many functions to one argument将许多函数应用于一个参数的高阶函数
【发布时间】:2025-12-19 02:40:11
【问题描述】:

我想要将函数列表应用于单个参数的高阶函数的通用名称。

从这个意义上说,它是地图的反面。 map 接受一个函数和一个参数列表,并将该函数应用于整个列表。在 Python 中它可能看起来像这样

map = lambda fn, args: [fn(arg) for arg in args]

我正在考虑功能相同但将备用参数作为列表类型的函数

??? = lambda fns, arg: [fn(arg) for fn in fns]

我怀疑这个函数存在并且有一个通用名称。这是什么?

【问题讨论】:

    标签: higher-order-functions


    【解决方案1】:

    其实你描述的不是map的反义词,而只是map的另一种应用方式。考虑,例如,

    map(lambda f: f(2), [lambda x: x + 1, lambda x: x, lambda x: x * x])
    

    实际上对参数2 应用了三个函数(加1、恒等式和平方)。所以你想要的只是

    alt_map = lambda x, fns: map(lambda f: f(x), fns)
    

    这仍然是一张普通的地图。

    【讨论】: