评论人:alexmiller
在这个问题上的名称并不重要 - Rich有自己的看法。
在补丁中
- 删除:static元数据,这些不再被使用
- 需要文档字符串,文档字符串应该参照其他Clojure文档字符串的风格进行编写。map可能是一个很好的参考。
- 不要将这些声明放入,而是将这些定义推迟到它们需要定义的地方。没有必要为这些添加更多的声明。
还有其他潜在的实现方法 - 应该实现并比较在一系列输入大小上的性能。除了当前的方法外,我还将调查
- 使用构造到瞬态映射的reduce-kv。这允许映射自我减少(不需要seq缓存)并避免创建只为了再次拆分的条目。
- (into {} (map ...) m)的transducers
还应该考虑
- 是否构建k/v向量并将其转换为映射,或直接构建映射(前者可能更快,不确定)
- 如果构建映射,应如何构建映射条目(向量与直接创建mapentry对象)
- 在map-keys中,当map生成新的重叠键时是否存在任何未解决的问题?
- 在现有的核心代码中,是否有地方可以使用map-keys/map-vals(我非常确定有)