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

欢迎!请参阅关于页面了解如何使用本站的相关信息。

0
Transducers

在 reducers 中,对 map 进行 fold 有特别的 kv 支持。考虑是否以及如何为 transducers 添加这个特性。

3 答案

0
_由: llasram_

我们没有 JIRA 的“撤销投票”功能,但我希望记录我的反对意见。作为一名 clojure.core.reducers 的重度用户,我认为在折叠 map 时切换到 k-v 语义是一个重大的错误特性。仅仅是一个直接应用于 map 的初始转换函数才能接收 k-v 语义(我认为这种限制也会转移到 transducers 上),这在重新排序操作时最为常见,发现中间的 map způsobilo 错误。我从未故意调用它。
0

由: gshayban

Marshall,目前还没有提出的增强功能,所以没有什么是反对的!您的输入是有价值的。(关于 c.c.reducers,这是一个独立的问题 - 的确,那个行为令人惊讶)

考虑为 transducers 添加 kv 支持
是否有一些函数可以转换 reduce-kv 风格的 reducing 函数(fn (link: result k v))有用?

忽略命名
map-key
map-val
map-keyval
filter- 这些可以自动生成。您不需要为目前在核心中的每个 transducers 都有 kv 版本。一些像 map 或 filter 可以专门用于键,忽略值,反之亦然。

某些如 map 的 transducer 会有不同的参数数量(map 的 transducer 有 varargs 参数)

0
by
参考: https://clojure.atlassian.net/browse/CLJ-1552 (由alexmiller发起)
...