map - 在一个值上减少一组函数?

标签 map clojure functional-programming

我正在寻找一种干净、惯用的方法来在 Clojure 中进行“向后减少”。

我有

(def fns '(fn1 fn2 fn3))
(def val 42)

我想获取 (fn3 (fn2 (fn1 val))) ,而且我对订单并不挑剔。所以我想连续地将一系列函数应用于一个值,而不是连续地将一系列值应用于一个函数。

建议?谢谢!

最佳答案

这只是减少。请记住,函数也是对象。此外,您仍在按 f1、f2 等顺序应用您的函数。
不要与它读取的事实混淆 (f4 (f3 ...

所以只需使用常规的reduce。

(reduce #(%2 %1) val functions) 

关于map - 在一个值上减少一组函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1690158/

相关文章:

map - 将键值元组包转换为在 Apache Pig 中映射

c++ - std::map 运算符 [] 和 size() 的排序

clojure - 将元数据附加到 Clojure gen-class

java - NPE 在 Tomcat 中安装 Clojure WAR,重启修复

使用 d3.js 和 TopoJSON 绘制 map ,阿尔伯斯西伯利亚投影

r - 用 R 创建大圆图

clojure - conda , condi , conde ,condu

c++ - 作为成员变量的 lambda 函数崩溃

clojure - 我应该如何构建一个列表并在 clojure 中返回它?

python - F# 映射/集合理解