2024 Clojure状态调查!中分享您的想法。

欢迎!请参阅关于页面以了解此工作的一些信息。

+2
Clojure

使map-indexed的外部接口与map保持一致。现有使用map-indexed的实现和接口保持不变。

(map vector (range 10 20) (range 30 35)) ;=> ([10 30] [11 31] [12 32] [13 33] [14 34]) (map-indexed vector (range 10 20) (range 30 35)) ;=> ([0 10 30] [1 11 31] [2 12 32] [3 13 33] [4 14 34])

补丁: CLJ-1601 map-indexed和测试 8-5-2017.patch - 同样增加了对map-indexed的测试

预审: Alex Miller

13 答案

0

评论者:aaron

您能添加一个测试来验证改进的功能吗?

0

评论者:bjeanes

当然。我尝试提交此补丁之前进行过,但发现没有现有的map-indexed测试可以扩展。基于此,我决定首先开始对话。如果您认为这是很好的补充,我将找到放置测试的位置并添加新的补丁文件。

0

评论者:bjeanes

为{{map-indexed}}添加两个单元测试。一个测试旧行为(单集合)和第二个测试映射跨3个集合。

我没有看到现有的测试,无法在此基础上扩展(使用 {{git grep map-indexed src/clojure}})。

0

评论者:justinspedding

这个特性非常有用。为什么几乎五年了都没有人继续工作在这上面呢?

0

评论者:alexmiller

由于我在参与 Clojure 之前,所以不了解,但是也不认为有什么不适合的原因。

0

评论者:jafingerhut

如果一个工单没有被 Rich Hickey 移动到“审查状态”,那么就不知道它是否需要被添加到 Clojure 中。除非有令人信服的理由支持其他做法,否则改变 Clojure 的默认答复是“不”。尽管如此,如果缺乏拒绝的理由,JIRA 工单通常会保持开启状态而不是被拒绝。

更多背景信息,请参阅此处,特别是链接处的“Clojure 协议和管理方式”文章: https://dev.clojure.org/display/community/Contributing+FAQ

有关审查以及其他 Clojure 核心团队使用的 JIRA 工单状态的详细信息,请参阅此处: https://dev.clojure.org/display/community/JIRA+workflow

对工单进行投票(如果您首先登录到您的 JIRA 账户,您可以在页面的右上角找到“投票”链接)在某些情况下可以帮助更快地引起对它们的关注,但没有保证时间表。

0

评论者:alexmiller

我没有尝试,但我确信这个补丁不再适用。拥有一个可以应用的单个组合补丁将是一个有用的第一步。

0

评论者:justinspedding

我刚刚上传了一个新的补丁,用于map-indexed,它允许它接受多个集合。我采用了与map完全相同的方法,但增加了索引功能。与2012年的旧补丁相比,它的性能更好。我还包括更多的测试。函数update和新的测试都在"CLJ-1601 map-indexed 和测试 8-5-2017.patch"中。

在我编写补丁之前,map-indexed一个测试都没有。对于一个内核函数来说,这看起来有点危险,因为没有经过测试。

0

评论者:justinspedding

我上传补丁并预筛查有一段时间了。这张票据和我创建的另一张票据都在等待审核,FAQ说我应该注意我的票据。我应该采取哪些其他措施来处理并推进这个吗?

0

评论者:alexmiller

我认为我们不会考虑在1.9时间内进行任何更多增强。

0

评论者:justinspedding

我想到了这一点,keepkeep-indexed也不接受多个集合。也许我应该为更新这些创建一个类似的工单。

0
_评论者:alexmiller

是的,为这些创建单独的工单会很好。我还不知道是否有这样一个工单存在。
0
参考:https://clojure.atlassian.net/browse/CLJ-1095 (报告者:bjeanes)
...