评论者:alexmiller
在这个问题上纠结名称没有意义 - Rich自有他的观点。
关于这个补丁
- 删除:static元数据,因为现在不再使用
- 需要文档字符串,其风格应与其它Clojure文档字符串一致。map是一个很好的借鉴地方。
- 而不是声明,可以推迟它们的定义,直到需要定义它们的内容。没有必要为此添加更多的声明。
还有其他的潜在实现 - 应该实现它们,并在不同大小的输入范围内进行比较以评估性能。除了当前方法,我还将调查
- 使用reduce-kv并将结果构建成一个临时map。这允许map自己减少(不需要序列缓存)并避免创建并再次删除条目。
- 使用intot{}(映射...m)
还应考虑
- 是否构建一个键值向量并将其转换为map,或直接构建map(前者可能更快,但不确定)
- 如果构建map,应该如何构建条目(向量或直接创建mapentry对象)
- 在map-keys中,当map生成新的重叠键时,是否存在任何开放性问题?
- 在现有核心代码中,是否有地方可以使用map-keys/map-vals(我非常确定有)