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 投票
by

由 justinspedding 创建的注释

这个特性非常有用。为什么近 5 年没有人继续工作在这个功能上呢?

0 投票
by

由 alexmiller 创建的注释

这一点在我的 Clojure 涉及之前,所以我不知道,但我看不到不这么做有任何理由。

0 投票
by

由 jafingerhut 创建的注释

如果 Rich Hickey 没有将工单移至“已审查”状态,则无法确定它是否值得添加到 Clojure 中。直到有充分的理由支持 Core Clojure 开发者,任何对 Clojure 的更改都默认为“不”。即便如此,如果没有充分的理由拒绝,JIRA 工单往往会保持开放状态,而不是拒绝。

有关更多背景信息,请参阅此处,特别是从那里链接的“Clojure 治理和如何走到这一步”文章:[链接](https://dev.clojure.org/display/community/Contributing+FAQ)

有关“已审查”以及 Clojure 核心团队使用的其他 JIRA 票状态详细信息,请参阅此处:[链接](https://dev.clojure.org/display/community/JIRA+workflow)

在某些情况下,对工单进行投票(如果您先登录到 JIRA 账户,则页面右上角附近有一个“投票”链接)可以帮助在工单未投票的情况下更快地引起注意,但对时间线没有保证。

0 投票
by

由 alexmiller 创建的注释

我没有尝试,但我肯定这个补丁不再适用。拥有一个可以一次应用的单个合并补丁将是一步有用的开始。

0 投票
by

由 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报告)
...