Using seq-utils...
1. Assume " " is NOT empty
2. Use partition-by to split
3. Use remove to clean up
4. Map!
user=>(map (partial apply str)
(remove (comp empty? first)
(partition-by empty? ["a" "" "b" "c"])))
("a" "bc")
I think this satisfies you conditions.
Sean
On Jan 29, 10:25 am, Wilson MacGyver <[email protected]> wrote:
> I saw this on twitter.
>
> http://pastie.org/796264
>
> The problem: given a list of strings, produce a list where sequential
> non-empty strings are concatenated
>
> # Conditions: Do not use iteration.
> #
> # Example: glom (["a", "b", "c"]) = ["abc"]
> # glom (["a", "", "b"]) = ["a", "b"]
> # glom (["a", "b", "", "c"]) = ["ab", "c"]
> # glom (["a", "b", "", "", "c"]) = ["ab", "c"]
>
> The author had rules like, don't use iteration and avoid recursion.
>
> anyone have any clever solutions? My first reaction was to use reduce, but
> I'm not sure how that'd work.
>
> --
> Omnem crede diem tibi diluxisse supremum.
--
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