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移动到已验证状态,将不知道是否值得将其添加到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

我刚刚上传了一个新的补丁,用于map-indexed,它允许其接受多个集合。我采取了与map完全相同的策略,但增加了索引。它的性能比2012年的旧补丁要好。我还增加了更多的测试。更新函数和新的测试都在“CLJ-1601 map-indexed和测试2017年8月5日.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报告)
...