欢迎!请查看关于页面,了解更多关于此工作的信息。
Doseq 目前是执行懒序列并进行副作用的好方法。拥有一个针对转置器的匹配宏将很方便。
方法:所包含的补丁简单地用提供的 xform、集合和一个在每步丢弃累计值的减少函数调用 transduce。每个减少步骤的值绑定到提供的符号。当不需要 xform 但仍然想要类似于 doseq 的语义时,提供了更短的参数数量。
补丁: CLJ-1523-1.patch
我喜欢这个建议的想法,我认为它将很有用,但我还同意两位评论者的意见。当前的补丁引入了一个不太直观的绑定,需要三个元素,这有点令人惊讶。这就是为什么我喜欢在run!中添加一个接受额外的xf的参数,就像(run! proc xf coll)一样。这模仿了into的工作方式,所以感觉很直观。
run!
xf
(run! proc xf coll)
评论者:wagjo
是否有必要将xform参数设为可选的?在你的文档字符串示例中有一个拼写错误,doseq -> doreduced。
评论者:halgari
很好的观点,修复了拼写错误,添加了其他算子。
评论者:gshayban
可能在 run! 上有另一个算子。
评论者:michaelblume
修复了需要应用到 master 的补丁。
评论者:alexmiller
我真的不喜欢这个看起来像绑定,但是里面有一个转换器。从语法角度看,这种可能性似乎不大。