Hi, Am 22.04.2009 um 16:57 schrieb samppi:
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?
(defn mystery-function [f o s] (when-let [s (seq s)] (lazy-seq (let [fst (first s)] (concat [fst] (when (f fst) [o]) (mystery-function f o (rest s))))))) Sincerely Meikel
smime.p7s
Description: S/MIME cryptographic signature