欢迎!请参阅关于页面以了解有关此工作的更多信息。
Doseq是执行惰性序列并执行副作用的好方法。有一个配套的转换器宏将是很有用的。
方法:所包含的补丁简单地调用transduce,其中包含提供的xform、集合和每次步骤都丢弃累积值的减少函数。每个减少步骤的值绑定到提供的符号。如果不需要xform,提供短的参数数量,但仍然需要像doseq一样的语义。
补丁:CLJ-1523-1.patch
我喜欢这个建议的想法,我认为这会很有用,但我还同意两位评论者的观点。当前的补丁引入了一个直观的三元素绑定,这有点令人惊讶。这就是为什么我喜欢在run!中添加一个额外的xf,如同(run! proc xf coll)。因为这模仿了into的工作方式,所以感觉更加直观。
run!
xf
(run! proc xf coll)
into
评论由:wagjo
如何使xform参数可选?另外,在docstring示例中有一个打字错误,doseq -> doreduced。
评论由:halgari发表
非常好的观点,已修复错误,并添加其他参数。
评论由:gshayban发表
或许在 run! 上又另一个参数。
评论由:michaelblume发表
已修复用于master的补丁
评论由:alexmiller发表
我真的不喜欢这种看起来像绑定的效果,除了里面有一个转置器。这在语法上似乎不太可能。