To me this application screams destructuring.  Assume you want to
(reduce + ...) a collection of sequences.  I'd lead off with a simple
vector mapping operation, and the reduce over the following sequence
like so:

user=>(reduce
  (fn [[acc-x acc-y] [x y]]
    [(+ acc-x x) (+ acc-y y)])
    (map vector [1 2 3] [4 5 6]))
[6 15]

Take your problem and adapt accordingly :)

On Jun 11, 3:59 am, Nathan Sorenson <n...@sfu.ca> wrote:
> Is there a way to fold over multiple sequences, in the same way that
> 'map' can apply a multi-parameter function over several seqs? In other
> words, is there a function like this:
>
> (defn reduce*
>         [f val & colls]
>         (reduce (fn [acc args] (apply f acc args))
>                 val
>                 (apply map vector colls)))
>
> That behaves like this:
> (reduce* assoc {} [:one :another] (iterate inc 1))
>
> > {:one 1, :another 2}

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