欢迎!有关如何使用本站点的更多信息,请参阅关于页面。
Doseq当前是一种执行懒序列和执行副作用的好方法。很希望能有一个相对应的宏适用于transducer。
方法:所提供的补丁仅仅调用transduce提供的xform、集合以及每个步骤都丢弃累积值的减少函数。每个减少步骤的值绑定到提供的符号上。在不需要xform的情况下,提供了更短的参数形式,但仍可在类似doseq的语义下快速运行。
补丁:CLJ-1523-1.patch
我喜欢这个建议,并且我认为这将是有用的,但我同时也同意这两个评论。当前的补丁引入了取三个元素的、不太直观的绑定,这有点出乎意料。这就是为什么我喜欢为run!添加一个额外xf的方式,就像(run! proc xf coll),这模仿了into的工作方式,所以 feel intuitive.
run!
xf
(run! proc xf coll)
由wagjo发表的评论:
将xform参数设置为可选如何?另外,在docstring示例中有一个 typo,doseq 应为 doreduce。
评论者:halgari
好意见,修复了拼写错误,并添加了其他算子。
评论者:gshayban
也许在 run! 上还有一个算子。
评论者:michaelblume
已修复应用于 master 的补丁
评论者:alexmiller
我真心不喜欢这个看起来像是绑定,但里面却有个Transpose(转置器)。这在语法上看似乎不太可行。