评论者:alexmiller
在这个问题上,讨论命名没有必要 - Rich 有他自己的看法。
在补丁中
- 移除 :static 元数据,这不再被使用了。
- 需要 docstrings,应该以其他 Clojure docstrings 的风格编写。map 可能是个不错的参考。
- 而不是声明导入,推迟这些定义直到它们的需要定义。没有必要添加更多声明。
还有其他潜在的实现方式 - 这些应该实现并比较它们在各种输入大小上的性能。除了当前的方法,我还将研究
- reduce-kv 将构建到临时映射中。这允许映射自我减少(不需要序列缓存)并避免创建再拆分的条目。
- 使用 (into {} (map ...) m) 的多播器。
还应考虑
- 是否构建 k/v 向量然后转换为映射,或者直接构建映射(前者可能更快,不确定)。
- 如果构建映射,如何构造映射条目(向量与直接创建 mapentry 对象)。
- 在 map-keys 中,当 map 生成新重叠关键字时是否有任何未解决的问题?
- 在现有核心代码中有哪些地方可以使用 map-keys/map-vals?(我相当确定有)