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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to