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

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

+2 投票
Clojure

Doseq目前是一种执行懒惰序列并执行副作用的好方法。如果能够有一个匹配的transducer宏会很好。

方法:所包含的补丁简单地使用提供的xform、集合和一个在每个步骤中丢弃累积值的减少函数调用transduce。每个减少步骤的价值绑定到提供的符号。提供较短的形式参数,用于不希望使用xform,但仍需要快速的doseq-like语义的情况。

补丁:CLJ-1523-1.patch

7 个答案

+2 投票

我喜欢这个建议,我认为它很有用,但也同意之前的两个评论。当前的补丁引入了一个不太直观的包含三个元素 绑定,有点令人惊讶。这就是为什么我喜欢在run! 添加一个接受类似 (run! proc xf coll) 的额外 xf 的形式参数的建议。这类似于into的工作方式,所以感觉很直观。

0 投票

评论者:wagjo

将xform参数设为可选如何?并且在docstring示例中有错误,doseq应该改为doreduced。

0 投票

评论由:halgari发表

很好的点,修正了拼写错误,增加了其他价数。

0 投票

评论由:gshayban发表

run!上也许需要另一个价数。

0 投票

评论由:michaelblume发表

已修正补丁以应用到master上

0 投票

评论由:alexmiller发表

我真的不喜欢它的外观像绑定,除非里面有一个传传感器。这在语法层面上似乎不太可能。

0 投票
...