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个集合的映射。

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

0投票

评论者:justinspedding

这个功能非常有用。为什么几乎5年来没有人继续工作呢?

0投票

评论者:alexmiller

那是在我参与Clojure之前的事情,所以不知道,但看不出有任何不行的理由。

0投票

评论者:jafingerhut

如果Rich Hickey未将工单移至Vetted状态,则不知道是否对其添加到Clojure中感兴趣。除非有充分的理由,否则对Clojure的任何更改的默认答案是“不”。也就是说,如果缺乏充分的拒绝理由,JIRA工单通常会保留而不是拒绝。

有关更多背景信息,请参阅此处,特别是来自那里的“Clojure治理及其形成方式”文章链接: https://dev.clojure.org/display/community/Contributing FAQ

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

投票(如果先登录到您的JIRA账户,则页面右上角有一个“投票”链接)在某些情况下可以帮助比未投票的工单更早地引起注意,但没有保证时间表。

0投票

评论者:alexmiller

我没有尝试,但我确信这个补丁现在已经不再适用。有一个可以应用的单一合并补丁将是第一个有用的步骤。

0投票

评论者:justinspedding

我刚刚为 map-indexed 上传了一个新补丁,允许它接受多个集合。我采取了与 map 完全相同的方法,但增加了索引。它的性能比 2012 年的老补丁更好。我还包含了更多测试。更新函数和新测试均在 "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 报告)
...