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

我没有看到现有的可以扩展的测试 (使用 {{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 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 报告)
...