I have to revise my last recommendation.  The signature of the second
call should be

[f val coll]

in order to match reduce.  Admittedly, this is a tiny detail.

Sean

On Aug 6, 4:28 pm, Sean Devlin <francoisdev...@gmail.com> wrote:
> One more thought.  I'd change the signature of the second call to
>
> [f init coll]
>
> This matches the original reductions.
>
> On Aug 6, 4:20 pm, Sean Devlin <francoisdev...@gmail.com> wrote:
>
> > It seems to have the same signature, so as a consumer of the library
> > it's the same to me.  If the speedup holds, I say make the change to
> > your version.
>
> > The only warning is that I couldn't find any regression tests for seq-
> > utils.  Perhaps this is a chance to add some.
>
> > My $.02
>
> > Sean
>
> > On Aug 6, 4:09 pm, Stuart Halloway <stuart.hallo...@gmail.com> wrote:
>
> > > Is the following an improvement on clojure.contrib.seq-utils/
> > > reductions, or a step backwards?
>
> > > (defn my-reductions
> > >    ([f coll]
> > >       (if (seq coll)
> > >         (cons (first coll) (my-reductions f (first coll) (rest coll)))
> > >         (cons (f) nil)))
> > >    ([f acc coll]
> > >       (if (seq coll)
> > >         (let [nextval (f acc (first coll))]
> > >           (lazy-seq (cons nextval (my-reductions f nextval (rest  
> > > coll))))))))
>
> > > On the plus side, it appears to be faster (as collections grow large),  
> > > and it doesn't "cheat" by introducing an atom. On the minus side it  
> > > isn't as pretty as the one in contrib.
>
> > > Stu
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to