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

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

+2
Clojure

Doseq 目前是执行懒序列并进行副作用的好方法。拥有一个针对转置器的匹配宏将很方便。

方法:所包含的补丁简单地用提供的 xform、集合和一个在每步丢弃累计值的减少函数调用 transduce。每个减少步骤的值绑定到提供的符号。当不需要 xform 但仍然想要类似于 doseq 的语义时,提供了更短的参数数量。

补丁: CLJ-1523-1.patch

7 答案

+2

我喜欢这个建议的想法,我认为它将很有用,但我还同意两位评论者的意见。当前的补丁引入了一个不太直观的绑定,需要三个元素,这有点令人惊讶。这就是为什么我喜欢在run!中添加一个接受额外的xf的参数,就像(run! proc xf coll)一样。这模仿了into的工作方式,所以感觉很直观。

0

评论者:wagjo

是否有必要将xform参数设为可选的?在你的文档字符串示例中有一个拼写错误,doseq -> doreduced。

0

评论者:halgari

很好的观点,修复了拼写错误,添加了其他算子。

0

评论者:gshayban

可能在 run! 上有另一个算子。

0

评论者:michaelblume

修复了需要应用到 master 的补丁。

0

评论者:alexmiller

我真的不喜欢这个看起来像绑定,但是里面有一个转换器。从语法角度看,这种可能性似乎不大。

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