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

欢迎!请查看关于页面获取更多关于这个平台的详细信息。

+2
Clojure

Doseq 当前是执行懒惰序列并执行副作用的好方法。如果能有一个匹配的宏用于 transducers 就太好了。

方法: 包含的补丁简单调用 transduce,提供转换函数(xform)、集合和在每个步骤扔掉累积值的还原函数。每个还原步骤的值绑定到提供的符号。提供了一个更短的参数数量,用于不想使用 xform 但还想获得快速的 doseq-like 语义的情况。

补丁: CLJ-1523-1.patch

7 答案

+2

我喜欢这个建议,并且我认为它会有用,但我也同意两个评论。当前的补丁引入了一个不太直观的只取三个元素的绑定,这有点令人惊讶。这就是为什么我喜欢在 run! 中添加一个接受额外 xf(如 (run! proc xf coll))的参数性的建议。这模仿了 how into 已有的方式,所以感觉直观。

0

评论者:wagjo

将 xform 参数设为可选如何?并且 docstring 示例中有拼写错误,doseq -> doreduced。

0

评论者:halgari

很好的观点,修正了拼写错误,添加了其他参数。

0
by

评论者:gshayban

也许应该在 run! 上添加另一个参数

0
by

评论者:michaelblume

修复了应用到 master 的补丁

0
by

评论者:alexmiller

我真的不喜欢它的外观,看起来像是绑定,但里面有一个转置器,这在语法上似乎不太可能行得通。

0
by
参考:[https://clojure.atlassian.net/browse/CLJ-1523](https://clojure.atlassian.net/browse/CLJ-1523)(由 halgari 提出)
...