Yet another way:

(reduce #(let [[k [v1 v2]] %2] (vec (concat % [[k v1]] [[k v2]]))) [] [[:a [1 
2]] [:b [3 4]]]) 


On Jun 8, 2014, at 3:43 PM, boz <b...@cox.net> wrote:

> Thanks for the replies!!
> 
> I goofed and only gave part of my loopy solution ... 
> here's the whole thing
> 
>       (defn do-one [id v]
>         (loop [a (first v) r (rest v) result []]
>           (if a
>             (recur (first r) (rest r) (conj result [id a]))
>             result)))
> 
>       (defn do-all [x]
>         (loop [a (first x) b (rest x) result []]
>           (if a
>             (recur (first b) (rest b) (into result (do-one (first a) (flatten 
> (rest a)))))
>             result)))
> 
> 
> On Sunday, June 8, 2014 12:12:19 PM UTC-7, boz wrote:
> Is there a better way to take this...
> 
>       [[:a [1 2]] 
>        [:b [3 4]]]
> 
> and convert it to this...
> 
>       [[:a 1] 
>        [:a 2] 
>        [:b 3] 
>        [:b 4]]
> 
> than using a loop like this...
> 
>       (defn doit [id v]
>         (loop [a (first v) r (rest v) result []]
>           (if a
>             (recur (first r) (rest r) (conj result [id a]))
>             result)))
> 
> ???
> 
> Thanks!
> ,boz
> 
> -- 
> 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/d/optout.

-- 
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/d/optout.

Reply via email to