请在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移至审核状态,就不知道它是否值得一加到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年的老补丁更好。我还包含了更多的测试。更新功能和新的测试都包含在"CLJ-1601 map-indexed and tests 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)
...