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

欢迎!请参阅关于页面以获取更多有关如何操作的信息。

+2
Clojure

Doseq是执行惰性序列并执行副作用的一种好方法。如果有一个与转换器对应的宏那就更好了。

方法:所提供的补丁简单地使用提供的xform、集合和在每个步骤中丢弃累积值的减法函数对transduce进行调用。每个减法步骤的值绑定到提供的符号。如果不需要xform,提供更短的arity,但要保留doseq类似的语义。

补丁:CLJ-1523-1.patch

7 个答案

+2

我喜欢这个建议,我认为它会很有用,但我也同意两个评论。目前的补丁引入了一个不太直观的绑定,它接受三个元素,这有点令人惊讶。这就是为什么我喜欢向run!添加额外arity的建议,它接受类似(run! proc xf coll)xf。这模仿了into的工作方式,所以它感觉是直观的。

0

评论者:wagjo

将xform参数设置为可选如何?在文档字符串示例中有错别字,doseq -> doreduced。

0

评论人:halgari

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

0

评论人:gshayban

也许在 run! 上再添加一个参数

0

评论人:michaelblume

修正了应用到 master 的补丁

0

评论人:alexmiller

我真的不喜欢这种绑定看起来很奇怪,但里面有一个转置器。这在语法方面似乎不太可能。

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