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

欢迎!有关如何使用本站点的更多信息,请参阅关于页面。

+2
Clojure

Doseq当前是一种执行懒序列和执行副作用的好方法。很希望能有一个相对应的宏适用于transducer。

方法:所提供的补丁仅仅调用transduce提供的xform、集合以及每个步骤都丢弃累积值的减少函数。每个减少步骤的值绑定到提供的符号上。在不需要xform的情况下,提供了更短的参数形式,但仍可在类似doseq的语义下快速运行。

补丁:CLJ-1523-1.patch

7 个回答

+2

我喜欢这个建议,并且我认为这将是有用的,但我同时也同意这两个评论。当前的补丁引入了取三个元素的、不太直观的绑定,这有点出乎意料。这就是为什么我喜欢为run!添加一个额外xf的方式,就像(run! proc xf coll),这模仿了into的工作方式,所以 feel intuitive.

0

由wagjo发表的评论:

将xform参数设置为可选如何?另外,在docstring示例中有一个 typo,doseq 应为 doreduce。

0

评论者:halgari

好意见,修复了拼写错误,并添加了其他算子。

0

评论者:gshayban

也许在 run! 上还有一个算子。

0

评论者:michaelblume

已修复应用于 master 的补丁

0

评论者:alexmiller

我真心不喜欢这个看起来像是绑定,但里面却有个Transpose(转置器)。这在语法上看似乎不太可行。

0
参阅:https://clojure.atlassian.net/browse/CLJ-1523 (由 halgari 报告)
...