如何将多个函数应用于单个公共参数?

How to apply multiple functions to a single, common parameter?

如何将多个函数(每个函数生成一张地图)应用到一个公共参数,然后合并所有结果?这可以改进吗?

(merge {} (podr root) (version root) (year root) (month root))

其中 root 是常用参数,podrversionyearmonth 是函数。

您可以创建一系列函数并使用 map 将每个函数应用于 root:

(into {} (map #(% root) [podr version year month]))

或者,您可以使用 juxt 来达到同样的效果:

(into {} ((juxt podr version year month) root))

两者差不多。

在函数列表上映射应用程序。

例如在 Haskell 中它将是:

> map (\f -> f 2) [(+1), (*2), (^3)]
[3,4,8]

或者,使用 ($) 作为 f $ x = f x 您可以申请:

> map ($ 2) [(+1), (*2), (^3)]
[3,4,8]

任何语言的相同方法,第一个 class 函数和应用程序。