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开发者没有强有力的反对理由之前,对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 年的老补丁相比,它的性能更好。我还包括了更多的测试。函数 update 和新的测试都在 "CLJ-1601 map-indexed 和 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报告)
...