2024 年 Clojure 状态调查!中分享您的想法。

欢迎!请查看关于页面以获取更多有关该功能的工作方式的信息。

+4
Clojure

在 CLJ-1894 中,我提出一个补丁来修改 clojure.walk/stringify-keys,以便在关键字使用命名空间时包含命名空间。然而,我对该更改的反向兼容性做出了错误的假设,但仍然认为该行为并非完全符合预期。

Alex Miller 在 CLJ-1894 的评论中指出一个有趣的观点,即 stringify-keys 和 keywordize-keys 在本质上都是同一个函数,只是变换不同。我认为有一个函数执行深度变换 map 键,并使用用户提供的变换,这是一个好主意,并且它可以简化一些 Clojure 库。

提议

  • 添加 clojure.walk/transform-keys,以遍历映射并变换所有键
  • 在 clojure.walk/stringify-keys 和 clojure.walk/keywordize-keys 中使用 transform-keys

补丁: clj1899-review1.patch

审核人员: Alex Miller

4 答案

0

评论者:szalansky

CLJ-1899 补丁

0

评论者:alexmiller

在补丁中,{{transform-keys}} 应以倒序接收参数 {{[m f]}} - 通常对于任何集合 -> 集合函数,集合应该是第一个参数。

0

评论者:szalansky

CLJ-1899 补丁解决 Alex miller 指出的问题。

0
参考:https://clojure.atlassian.net/browse/CLJ-1899(由 szalansky 报告)
...