On 7 Aug 2010, at 20:23, gary ng wrote: > On Sat, Aug 7, 2010 at 8:14 AM, Steve Purcell <st...@sanityinc.com> wrote: >> Oh, right, so maybe: >> (last (take-while #(< (apply + %) 100) (reductions conj [] (iterate inc >> 0)))) >> => [0 1 2 3 4 5 6 7 8 9 10 11 12 13] >> -Steve > > or > > user=> (map second (take-while (fn [e] (< (first e) 100)) (rest > (reductions (fn [a x] [(+ (first a) x) x]) [0 0] (iterate inc 0))))) > (0 1 2 3 4 5 6 7 8 9 10 11 12 13) >
Nice - that's about twice as fast as my version (with the 100 limit scaled up to 1 million), though perhaps a less general pattern since the code structure assumes knowledge of +'s cumulative nature. -Steve -- 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