请在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}}添加两个单元测试。一个测试旧行为(单个集合),另一个测试跨三个集合的映射。

我没有发现任何现有的{{map-indexed}}测试,无法在此基础上进行扩展(使用{{git grep map-indexed src/clojure}})

0

评论人:justinspedding

这个特性非常有用。为什么没有人几乎5年的时间里继续在这个特性上进行工作呢?

0

评论人:alexmiller

这个特性在我对Clojure有兴趣之前就已经开始开发了,因此不知道原因,但看不出有什么理由不能做。

0

评论人:jafingerhut

如果Rich Hickey没有将票券移动到vetted状态,那么就无法确定它是否值得添加到Clojure中。在没有充分的论据反对的情况下,对Clojure的任何更改的默认回答都是“不”。即便如此,如果缺乏充分的拒绝理由,JIRA票券通常会保持open状态而不是被拒绝。

有关更多背景信息,请参考此处,特别是从那里链接的“Clojure Governance and How It Got That Way”文章: https://dev.clojure.org/display/community/Contributing FAQ

有关vetted和其他由Clojure核心团队使用的JIRA状态详细信息,请参考此处: https://dev.clojure.org/display/community/JIRA workflow

对票券进行投票(如果您首先登录到您的JIRA账户,页面右上角有一个“Vote”链接)有时可以帮助尽早引起对它们的注意,但没有任何时间保证。

0

评论人:alexmiller

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

0

评论人:justinspedding

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

此外,map-indexed在我编写补丁之前一个测试都没有。对于一个核心函数来说,这似乎有些危险,因为没有经过测试。

0
by

评论人:justinspedding

自从我上传补丁到这里并被预审以来已经有段时间了。这两个我创建的工单都正在等待审查,常见问题解答(FAQ)说我会关注我的工单。我还需要做什么来处理这些并推进它们吗?

0
by

评论人:alexmiller

我认为我们不会在1.9时间范围内考虑更多的增强功能。

0
by

评论人:justinspedding

我想《keep》和《keep-indexed》也没有接受多个集合的功能。也许我应该为更新这些功能创建一个类似的工单。

0
by
_由alexmiller发表评论:

是的,为那些创建单独的工单会更好。我不知道是否已经有了。
0
by
参考:https://clojure.atlassian.net/browse/CLJ-1095(由bjeanes报告)
...