What if someone wanted to slice a multi-dimensional vector (vector of vectors of vectors ...) or even just an ordinary matrix (vector of vectors).
Is there a way to extend this beyond an ordinary one-dimensional vector? Rock On Aug 18, 3:17 am, Mark Triggs <mark.h.tri...@gmail.com> wrote: > Hi all, > > Is there an idiom for what I'm doing below, or does a function already > exist? > > (let [vowels (slice "abcdefghijklmnopqrstuvwxyz" > 0 4 8 14 20)] > vowels) > => (\a \e \i \o \u) > > A possible implementation: > > (defn slice > "Return the items in coll at index positions keys. > > (slice \"abcdefg\" 0 4 6) => (\\a \\e \\g)" > [coll & keys] > (let [keyset (set keys)] > (for [[idx elt] (indexed coll) > :when (keyset idx)] > elt))) > > I often want something like this when picking apart lines from log files > (calling .split on a string, then grabbing certain segments) > > Thanks, > > Mark > > -- > Mark Triggs > <mark.h.tri...@gmail.com> --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---