Yet another version: (defn take-while-acc [f pred coll] (map (fn [_ x] x) (take-while pred (reductions f coll)) coll))
Seems to work: user> (take-while-acc + #(< % 100) (range)) (0 1 2 3 4 5 6 7 8 9 10 11 12 13) Note that reductions does use an "accumulator" (in the form of a closed over local), so the above works as requested. Also, this version constructs no auxiliary data structures, not even two-element vectors. Sincerely, Michał -- 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