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 <[email protected]> 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 [email protected]
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> 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 [email protected].
>>> 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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.