如何将多个函数应用于单个公共参数?
How to apply multiple functions to a single, common parameter?
如何将多个函数(每个函数生成一张地图)应用到一个公共参数,然后合并所有结果?这可以改进吗?
(merge {} (podr root) (version root) (year root) (month root))
其中 root
是常用参数,podr
、version
、year
和 month
是函数。
您可以创建一系列函数并使用 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 函数和应用程序。
如何将多个函数(每个函数生成一张地图)应用到一个公共参数,然后合并所有结果?这可以改进吗?
(merge {} (podr root) (version root) (year root) (month root))
其中 root
是常用参数,podr
、version
、year
和 month
是函数。
您可以创建一系列函数并使用 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 函数和应用程序。