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的变更的默认回答是“不”。话虽如此,如果没有充分的理由拒绝,则倾向于保留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年的旧补丁更好。我还包含更多测试。`update`函数和新的测试都在"CLJ-1601 map-indexed and tests 8-5-2017.patch"中。

在我编写补丁之前,map-indexed有0个测试。对于一个核心函数来说,这似乎有点危险,因为它没有得到测试。

0

评论者:justinspedding

自从我上传了这个补丁并进行了预筛选之后已经有一段时间了。这个工单和另一个我创建的工单正在等待审查,常见问题解答(FAQ)说应该我关注我的工单。我还需要做什么来关注它并推进它吗?

0

评论者:alexmiller

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

0

评论者:justinspedding

我想到了keepkeep-indexed也不接受多个集合。也许我应该为更新这些创建一个类似的工单。

0
评论者:alexmiller

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