There are some bugs with my previous post. Here's a revised version.

;;----------USING LIST COMPREHENSIONS-------
(for [n (range 10) :when (even? n)] n)

(apply concat
  (for [n (range 10) :when (even? n)]
    [n (* 2 n)]))

;;--------EMIT/COLLECT IMPLEMENTATION----------
(def -collector)
(defn emit [x]
  (set! -collector (conj -collector x)))
(defmacro collect [& body]
  `(binding [-collector []]
     ~...@body
     -collector))

;;--------USING EMIT/COLLECT---------
(collect
  (doseq [ n (range 10)]
    (when (even? n) (emit n))))

(apply concat
  (for [n (range 10) :when (even? n)]
    [n (* 2 n)]))


Sincerely
  -Patrick

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