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

欢迎!请参阅关于页面以了解有关此工作的更多信息。

+2 投票
Clojure

Doseq是执行惰性序列并执行副作用的好方法。有一个配套的转换器宏将是很有用的。

方法:所包含的补丁简单地调用transduce,其中包含提供的xform、集合和每次步骤都丢弃累积值的减少函数。每个减少步骤的值绑定到提供的符号。如果不需要xform,提供短的参数数量,但仍然需要像doseq一样的语义。

补丁:CLJ-1523-1.patch

7 个答案

+2 投票

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

0 投票

评论由:wagjo

如何使xform参数可选?另外,在docstring示例中有一个打字错误,doseq -> doreduced。

0 投票

评论由:halgari发表

非常好的观点,已修复错误,并添加其他参数。

0 投票

评论由:gshayban发表

或许在 run! 上又另一个参数。

0 投票

评论由:michaelblume发表

已修复用于master的补丁

0 投票

评论由:alexmiller发表

我真的不喜欢这种看起来像绑定的效果,除了里面有一个转置器。这在语法上似乎不太可能。

0 投票
...