There's also: (->> xs (partition-by string?) (partition 2) (mapcat (fn [[[s] xs]] (for [x xs] [s x]))))
- James On 1 December 2013 19:39, Ryan <arekand...@gmail.com> wrote: > Haha, no worries, it happens :) > > That seems to work nice as well! > > Ryan > > > On Sunday, December 1, 2013 9:36:47 PM UTC+2, john walker wrote: >> >> I swear english is my first language. This one isn't elegant, but at >> least you know you aren't alone: >> >> (->> ["foo" 1 "bar" 10 20 "clown" 5] >> (partition-by string?) >> (partition 2) >> (map #(apply concat %)) >> (map #(let [x (first %)] >> (for [y (rest %)] >> [x y]))) >> (reduce into [])) >> >> On Sunday, December 1, 2013 2:21:14 PM UTC-5, john walker wrote: >>> >>> Sorry, I spoke without seeing that you were aware of partition-by. >>> Here's one that isn't vectorized. >>> >>> (def v ["foo" 1 "bar" 10 20 "clown" 5]) >>> (->> v >>> (partition-by string?) >>> (partition 2) >>> (map #(apply concat %))) >>> >>> On Sunday, December 1, 2013 2:10:04 PM UTC-5, Ben wrote: >>>> >>>> user=> (def v ["foo" 1 "bar" 2 3 "baz" 4]) >>>> #'user/v >>>> user=> (first (reduce (fn [[res s] e] (if (string? e) [res e] [(conj >>>> res [s e]) s])) [[] nil] v)) >>>> [["foo" 1] ["bar" 2] ["bar" 3] ["baz" 4]] >>>> >>>> On Sun, Dec 1, 2013 at 10:57 AM, Ryan <areka...@gmail.com> wrote: >>>> >>>>> Hi all, >>>>> >>>>> I have a vector which contains an unknown number of repetitions of the >>>>> following pattern: >>>>> >>>>> String, followed by 1 or more integers >>>>> >>>>> For example: >>>>> >>>>> String >>>>> Integer >>>>> String >>>>> Integer >>>>> Integer >>>>> String >>>>> Integer >>>>> Integer >>>>> Integer >>>>> String >>>>> Integer >>>>> >>>>> What I am trying to do is to create a vector of pairs which each pair >>>>> will be the string and the integers followed. >>>>> >>>>> Real example: >>>>> >>>>> foo >>>>> 1 >>>>> bar >>>>> 10 >>>>> 20 >>>>> clown >>>>> 5 >>>>> >>>>> should convert to: >>>>> >>>>> [[foo 1] [bar 10] [bar 20] [clown 5]] >>>>> >>>>> I did try to play around with partition-by, partition and instance? >>>>> but I couldn't get it quite right. >>>>> >>>>> Thank you for your time >>>>> >>>>> -- >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Clojure" group. >>>>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com. >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>> >>>> >>>> >>>> -- >>>> Ben Wolfson >>>> "Human kind has used its intelligence to vary the flavour of drinks, >>>> which may be sweet, aromatic, fermented or spirit-based. ... Family and >>>> social life also offer numerous other occasions to consume drinks for >>>> pleasure." [Larousse, "Drink" entry] >>>> >>>> -- > -- > 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. > -- -- 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.