You version does not work for certain kind of data, (as did mine), see my answer to Meikel for more detail,
-- Laurent 2009/4/23 Christophe Grand <christo...@cgrand.net>: > > Hi all! > > (defn mystery-function [pred coll] > (lazy-seq > (when (seq coll) > (let [[run etc] (split-with pred coll)] > (if (seq run) > (concat run (cons :foo (mystery-function pred etc))) > (cons (first coll) (mystery-function pred (rest coll)))))))) > > > Christophe > > > samppi a écrit : >> Let's say I have a sequence of integers: >> (def a (3 9 1 5 102 -322 ...)) >> >> Is there a function for inserting an object—let's say :foo—after >> elements that fulfill a certain predicate? >> Furthermore, I mean inserting :foo after any block of elements that >> fulfill it: >> >> (mystery-function (partial > 6) a) ; -> (3 :foo 9 1 5 :foo 102 >> -322 :foo ...) >> >> Is it possible to do this without a loop? >> > >> >> > > > -- > Professional: http://cgrand.net/ (fr) > On Clojure: http://clj-me.blogspot.com/ (en) > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---