The general idea is that eduction is best when the result will be 
completely consumed in a reducible context. Any case of reusing the result 
will likely be better served by sequence which can cache and reuse the 
answer.

On Wednesday, April 1, 2015 at 3:51:53 AM UTC-5, Tassilo Horn wrote:
>
> vve...@gmail.com <javascript:> writes: 
>
> > Eduction retains the ability to be recomposed with other transducers 
> > higher in the function chain. The following two are nearly equivalent: 
> > 
> > (transduce (take 1e2) + (eduction (filter odd?) (range))) 
> > (transduce (comp (filter odd?) (take 1e2)) + (range)) 
> > 
> > This will be slower: 
> > (transduce (take 1e2) + (sequence (filter odd?) (range))) 
> > 
> > Execution time mean : 19.054407 µs 
> > Execution time mean : 19.530890 µs 
> > Execution time mean : 39.955692 µs 
>
> Interesting.  But in my code experimentation has shown that sequence is 
> almost always faster in my use-cases which usually look like 
>
>   (sequence (comp (mapcat foo1) 
>                   (filter p1) 
>                   (map f1) 
>                   (mapcat foo2) 
>                   (filter p2) 
>                   (mapcat foo3) 
>                   (filter p3)) 
>              coll) 
>
> Here, I've switched between making the foo* functions return eductions 
> or lazy sequences, and the latter seems to alway be faster although that 
> looks like a use-case of eduction based on my assumptions... 
>
> So maybe eduction can unfold its full potential only during transduce? 
>
> Bye, 
> Tassilo 
>

-- 
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.

Reply via email to