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
