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没有将票据移到Vetted状态,则无法确定它是否对添加到Clojure感兴趣。在无法提供有说服力的论据反驳核心Clojure开发人员的情况下,对Clojure的任何变化,默认回答都是“不”。但是,如果没有充分的理由拒绝,则JIRA票据通常会被保留而不是拒绝。

有关更多背景信息,请参阅这里,特别是通过以下链接的“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帐户,则页面上近顶部的右侧有“投票”链接)可以帮助比没有投票的票据更快地获得关注,但对时间表没有保证。

0

评论人:alexmiller

我没有尝试,但我相信这个修正案现在不再适用。有一个可以应用的单独的合并修正案将是第一步的有用之处。

0

评论人:justinspedding

我刚刚上传了一个针对 map-indexed 的新补丁,它允许它接受多个集合。我采用了与 map 完全相同的方法,但增加了索引。它的性能比 2012 年的旧补丁要好。我还包括了更多的测试。更新函数和新测试都在 "CLJ-1601 map-indexed 和测试 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 报告)
...