Hi Andreas,
You are right, the helpful Clojure community is a real asset to be proud of!
I like your solution using* loop ... recur* as it makes the intention of the
code a bit more clear.
The pattern
(lazy-seq
(when-let [s (seq coll)]
...
is used in the implementation of* take-while <goog_1884565766>* in Clojure
Core <http://clojuredocs.org/clojure_core/clojure.core/take-while>. *loop
... recur* cannot be used because the function call is not the tail
position.
By the way, my code for *drop-by2* in my last post was not correct. So here
is the corrected version:
(defn drop-by2 [f coll]
(lazy-seq
(when-let [s (seq coll)]
(let [x (first s)
y (second s)]
(if (and x y (= (f x) (f y)))
(drop-by2 f (rest s))
(rest s))))))
Best regards,
Stefan
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en