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

Reply via email to