Hi,

here a "short-circuiting" (in sense of realising only needed values from
the passed seq) version of a "function and".

(defn fand
  [s]
  (let [s (seq s)
        l nil]
    (if s
      (when-let [f (first s)]
        (recur (next s) f))
      l)))

clojureql.sql=> (fand (map = [:a :b :c] [:a :b]))
true
clojureql.sql=> (fand (map = [:a :b :c] [:c :a :b]))
nil
clojureql.sql=> (fand (map = [:a :b :c] [:a :c :b]))
nil
clojureql.sql=> (fand (map = [:a :b :c] [:a :b :c]))
true

Sincerly
Meikel

-- 
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