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 displayedisable/community/Contributing FAQ

有关Vetted和其他Clojure核心团队使用的JIRA票据状态的详细信息,请参阅此处: https://dev.clojure.org displayedisable/community/JIRA 工作流

在票据上进行投票(如果您首先登录到您的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报告)
...