Would it be possible (and if so what would be the simplest way) to implement something like Python's generators and `yield` statement in Clojure using core.async? I'm thinking something like:
(defn range [n]
(generator
(loop [i 0]
(yield i)
(when (< i n)
(recur (inc i)))
(let [generator (range 5)]
(generator) ;; => 0
(generator) ;; => 1
;; etc
)