评论者:alexmiller
在这个话题上讨论命名无意义 - Rich 仍然会有他自己的看法。
在补丁中
- 删除了不使用的 :static 元数据
- 需要编写注释字符串,其风格应与其他 Clojure 注释字符串保持一致。map 可能是一个很好的参考点。
- 而不是直接声明,推迟到需要定义这些内容后再进行定义。没有必要为这些内容添加更多的声明。
还有其他潜在的实现方式 - 应该对各种输入大小进行实现和性能比较。除了当前的方法之外,我还将调查
- 使用 reduce-kv 将其构建到临时映射中。这允许映射自行减少(无需缓存序列)并避免创建只为了再次拆分的条目。
- 使用 transducers with (into {} (map ... m))
还应考虑
- 是否要构建 k/v 向量并将其转换为映射,还是直接构建映射(前者可能更快,不确定)
- 如果构建映射,如何构建映射条目(向量与直接创建 mapentry 对象)
- 在 map-keys 中,当 map 生成新的重叠键时,是否有什么疑问?
- 在现有核心代码中是否可以找到 map-keys/map-vals 的位置(我非常确信有)