请在 2024 年 Clojure 状况调查! 中分享您的想法。

欢迎!请查看 关于 页面以了解更多关于此功能的工作方式的信息。

+4
Clojure

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

Alex Miller 在他对 CLJ-1894 的评论中提出了一个有趣的观点,即 stringify-keys 和 keywordize-keys 实际上是同一功能,只是变换不同。我认为使用一个函数进行深层次的键变换,该变换由用户提供,是一个好主意,它可以用来简化一些 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]}} - 通常对于任何函数,如果它是 collection -> collection,则集合应为第一个参数。

0

评论者:szalansky

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

0
...