2024年Clojure调查!中分享您的想法。

欢迎!有关如何工作的更多信息,请参阅关于页面。

0票数
Clojure
关闭

您对在核心命名空间中添加index-by函数有何看法?这类似于group-by但不创建向量

(defn index-by
  "Return a map where a key is (f item) and a value is item."
  {:added "1.11"
   :static true}
  [f coll]
  (persistent!
   (reduce
    (fn [ret x]
      (assoc! ret (f x) x))
    (transient {}) coll)))

我已经使用这个函数多年,特别是用于索引数据库结果。通常,您有一个包含具有唯一ID的映射的向量,并需要构建一个类似ID => 行的映射。为什么不引入这样的函数?我可以创建一个PR。

被标记为重复: 创建同质值的索引映射
我考虑到这是一个特殊的情况,可能和`group-by-reduce` ( https://cnuernber.github.io/ham-fisted/ham-fisted.api.html#var-group-by-reduce ) 相关,可能这和您的兴趣有关。
关键在于,这个功能应该在核心模块中体现。我不喜欢引入新依赖的想法,因为只需要4-5行代码。
明白了!感谢解释。
...