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移至审核状态,那就不知道它是否应该添加到Clojure中。除非有令人信服的论据说服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
by

评论人:justinspedding

补丁上传到这里已经有段时间了,并且已经进行了预筛。这个工单以及我创建的另一个工单都在等待审查,FAQ中提到我应该关注我的工单。我还需要做其他什么来处理它并推进它吗?

0
by

评论人:alexmiller

我认为我们不会在1.9的时间框架内考虑任何进一步增强。

0
by

评论人:justinspedding

我想起来,代码中的keepkeep-indexed也不接受多个集合。也许我应该为更新那些创建一个类似的工单。

0
by
_由 alexmiller 添加的评论_

是的,为那些创建一个单独的工单会很好。我不确定是否已经存在这样的工单。
0
by
参考: https://clojure.atlassian.net/browse/CLJ-1095 (由bjeanes报告)
...