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

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

0
Transducers

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

3 答案

0
_评论由:lla_sram_ 发表

我们没有JIRA的“取消投票”功能,但我希望记录我的反对意见。作为一个clojure.core.reducers的重度用户,我考虑在reducing map时切换到k-v语义是一个重大的错误特性。只有直接应用于map的初始转换函数才能接收k-v语义(这种限制我认为会转移到transducers上),这个行为在重新排序操作和发现中间的map现在已经在链式转换的中间引起了airity错误时最频繁出现。我从未发现有必要有意调用它。
0

评论由:gshayban 发表

Marshall,还没有提出任何增强建议,所以没有什么可以反对的!您的意见很有价值。(关于c.c.reducers,这是另一个问题--是的,那个行为确实令人惊讶)

考虑为transducers提供kv支持
是否有必要有一些函数,可以将reducing函数(例如fn (result k v))转换成reducing-kv风格?

忽略命名
map-key
map-val
map-keyval
过滤器- * 这些可能是通过机械生成的。您不需要为每个核心中的信号转换器生成 kv 版本。例如,像 map 或 filter 这样的函数可能专门适用于键而忽略值,反之亦然。

像 map 的转换器这样的某些事物将与arity不兼容(map 的转换器具有可变参数 arity)。

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