Clojure 如何处理向reduce函数传递变量的需要?
clojure中是否存在类似于reduce的函数,但可以传入变量 例如,假设我想实现自己的过滤函数,并传入一个谓词来检查整个集合,并保留满足谓词的值,那么在使用reduce时是否有一种惯用的方法来执行此操作 我想应该做以下几点:Clojure 如何处理向reduce函数传递变量的需要?,clojure,Clojure,clojure中是否存在类似于reduce的函数,但可以传入变量 例如,假设我想实现自己的过滤函数,并传入一个谓词来检查整个集合,并保留满足谓词的值,那么在使用reduce时是否有一种惯用的方法来执行此操作 我想应该做以下几点: (->> coll (map #(:val % :pred pred)) (reduce my-filter-fn {:val 0 :pred pred})) 基本上只是创建一组映射,这些映射具有我需要传递到reduce函数中的值 我发现
(->> coll
(map #(:val % :pred pred))
(reduce my-filter-fn {:val 0 :pred pred}))
基本上只是创建一组映射,这些映射具有我需要传递到reduce函数中的值
我发现需要频繁地向reduce函数传递值的用例,但这可能是因为我没有以适当的函数方式进行思考。有更惯用的解决方案吗?让我的过滤器fn成为一个三重的乐趣,并使用部分
(reduce (partial my-filter-fn pred) 0)
但听起来你也可以用过滤器代替reduce
(->> coll
(filter pred)
(reduce my-fn)
我真的不明白你想做什么。你能用数据添加一个before/after的例子吗?