"conj", I mean. On Dec 27, 11:04 pm, Conrad <drc...@gmail.com> wrote: > Hmmm... I didn't think of using cons/vectors to avoid the reverse... > > On Dec 27, 10:47 pm, David Cabana <drcab...@gmail.com> wrote: > > > > > If speed matters, I found both of these to be faster than the version > > using reductions. > > > First version is to roll my own replacement for reductions, > > specialized to addition: > > > (defn partial-sums [coll] > > (loop [result [0] > > tot 0 > > terms coll] > > (if (empty? terms) > > result > > (let [next (+ tot (first terms))] > > (recur (conj result next) > > next > > (rest terms)))))) > > > (defn left-tot1 [lst] > > (map vector lst > > (partial-sums lst))) > > > Even faster is this one, which is something along the lines of one of > > you original versions, > > but without a list reversal. > > > (defn left-tot2 [lst] > > (loop [result [ ] > > tot 0 > > terms lst] > > > (if (empty? terms) > > result > > (let [f (first terms)] > > (recur (conj result [f tot]) > > (+ tot f) > > (rest terms)))))) > > > On Sun, Dec 27, 2009 at 9:22 PM, Conrad <drc...@gmail.com> wrote: > > > ...for some reason, however, this version is a lot slower than my 3 > > > versions of the code- Not sure if it's the laziness of this version, > > > or if there's stuff being put on the call stack by "reductions"...
-- 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