Clojure 2024年调查!(调查)中分享你的想法!

欢迎!请访问关于页面,了解更多关于此功能的信息。

+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移至审查状态,那么就不知道它是否值得添加到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

我刚刚为基于映射的索引上传了一个新补丁,允许它接受多个集合。我采取了和映射相同的方法,但增加了索引。它的性能比2012年的旧补丁更好。我还包含了更多的测试。更新函数和新的测试都在 "CLJ-1601 map-indexed and tests 8-5-2017.patch" 中。

在我写补丁之前,map-indexed 没有任何测试。对于一个核心函数来说,这似乎有点危险,因为没有经过测试。

0

评论者:justinspedding

自从我在这里上传补丁并被预筛选以来已经有一段时间了。这两个ticket都在等待审核,FAQ中说我应该处理我的ticket。我还需要做些什么来处理它并推进它吗?

0

评论者:alexmiller

我认为我们不会在1.9的时间框架内考虑更多的增强。

0

评论者:justinspedding

我突然想到,`keep` 和 `keep-indexed` 也不接受多个集合。也许我应该为更新这些创建一个类似的ticket。

0
_评论者:alexmiller_

是,为他们创建单独的ticket会很好。我不知道是否已经存在这样的ticket。
0
参考:https://clojure.atlassian.net/browse/CLJ-1095(由 bjeanes 报告)
...