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行代码时。
明白了!谢谢你的解释。
...