Looks nice, although I still need to wrap my head arround it. I don't believe in micro-benchmarks but I did one anyways cause I was curious how transduce would stack up against reduce (not reducers).
https://github.com/thheller/transduce-bench transduce Evaluation count : 2220 in 60 samples of 37 calls. Execution time sample mean : 27,461565 ms Execution time mean : 27,462916 ms Execution time sample std-deviation : 132,937808 µs Execution time std-deviation : 136,285505 µs Execution time lower quantile : 27,263592 ms ( 2,5%) Execution time upper quantile : 27,792904 ms (97,5%) Overhead used : 2,409871 ns Found 2 outliers in 60 samples (3,3333 %) low-severe 2 (3,3333 %) Variance from outliers : 1,6389 % Variance is slightly inflated by outliers reduce Evaluation count : 1140 in 60 samples of 19 calls. Execution time sample mean : 53,925331 ms Execution time mean : 53,928024 ms Execution time sample std-deviation : 293,048053 µs Execution time std-deviation : 295,900746 µs Execution time lower quantile : 53,477577 ms ( 2,5%) Execution time upper quantile : 54,526940 ms (97,5%) Overhead used : 2,409871 ns Found 1 outliers in 60 samples (1,6667 %) low-severe 1 (1,6667 %) Variance from outliers : 1,6389 % Variance is slightly inflated by outliers Seems worth it even for this use-case but there are far more interesting things to do. Will keep playing with it for sure. Cheers, /thomas On Wednesday, August 6, 2014 8:01:24 PM UTC+2, Rich Hickey wrote: > > I pushed today the initial work on transducers. I describe transducers > briefly in this blog post: > > http://blog.cognitect.com/blog/2014/8/6/transducers-are-coming > > This work builds on the work done for reducers, bringing > context-independent mapping, filtering etc to other areas, such as > core.async. > > This is work in progress. We will be cutting alpha releases to help make > it easier to start using core's transducers together with core.async's new > support for them. > > I am very excited about this powerful technique and how we all might use > it. > > Please have a look. > > Feedback welcome, > > Rich > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.