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

欢迎!请查看 关于 页面,了解更多关于如何使用本站的信息。

0 投票
转换器

在 reducers 中,对 map 进行 fold 有专门的 kv 支持。考虑是否以及如何为转换器添加此功能。

3 个答案

0 投票
_由:llasram_ 发表评论

我们没有 JIRA 的 "取消投票" 功能,但我希望通过这个提议的增强方案表示反对。作为一个 clojure.core.reducers 的重度使用者,我认为当对 map 进行 reduce 时切换到 kv 语义是一个显著的缺陷。由于只有初始转换函数能够直接应用于 map 并接收 kv 语义(我认为这一限制也将转移到转换器),因此这种行为在重新排序操作和发现某个中间 map 导致链中某处的错误时会导致问题。我从没有故意调用它。
0 投票

由:gshayban 发表评论

Marshall,目前还没有提议的增强方案,所以没有什么可以反对的!您的意见很有价值。(关于 c.c.reducers,那是另一个问题——是的,那种行为确实令人惊讶)

考虑为转换器添加 kv 支持
是否应该有一些函数可以将 reducer 函数转换为 reduce-kv 风格(fn (result k v))?

忽略命名
map-key
map-val
map-keyval
filter- 这些可以通过机制生成。您不需要为 core 中的每个转换器都提供 kv 版本。一些像 map 或 filter 可以专门应用于键而忽略值,反之亦然。

一些像 map 的转换器将会不兼容(map 的转换器有可变数量的参数)。

0 投票
参考: https://clojure.atlassian.net/browse/CLJ-1552(由 alexmiller 报告)
...