我正在寻找一种干净、惯用的方法来在 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/