Meikel -- cool lazy solution, but doesn't generalize to replace <= with a predicate. Here's my non-lazy, reduce-based one generic with instantiations:
(defn clis-pred [pred s] (let [[x & xs] s [r zs _] (reduce (fn [[r zs z] e] (if (pred z e) [r (conj zs e) e] [(conj r zs) [e] e])) [[] [x] x] xs)] (conj r zs))) (def clis-incr (partial clis-pred <)) (def clis-nondecr (partial clis-pred <=)) (def clis-nonincr (partial clis-pred >=)) (def clis-decr (partial clis-pred >)) Cheers, Alexy -- 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 Note that posts from new members are moderated - please be patient with your first post. 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