Hi Colin,

One more solution, with example data in the process commented

*(let [f #(range 1 (inc %))*
*      coll '(1 2 3)]*
*  (->>*
*    *(for [*x coll    *; x = 1, 2, 3
*          y *(*f x*)]*  *; y = 1       (where x = 1),
*                    *;     1, 2    (where x = 2),
*                    *;     1, 2, 3 (where x = 3)
*      *[*y x*])*        *; [y, x] = [1, 1], [1, 2], [2, 2], [1, 3], [2, 
3], [3, 3]
*    *(reduce   *      *; for example where
*      *(fn [*a *[*y x*]]* *;   a = {1 [1 2 3], 2 [2]}, [y x] = [2 3]
*                    *; => (a y []) = [2]
*                    *;    (conj ... x) = [2 3]
*        (assoc a y (conj (a y []) x)))*
*      *{})))*         *;    (assoc a y ...) = {1 [1 2 3], 2 [2 3]}

Hope this helps.

Y.Kohyama

-- 
-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to