function | removed v1.9.562 | added v0.0-2301 | Edit |
(stepper xform iter)
(defn stepper [xform iter]
(letfn [(stepfn
([result]
(let [lt (if (reduced? result)
@result
result)]
(set! (.-stepper lt) nil)
result))
([result input]
(let [lt result]
(set! (.-first lt) input)
(set! (.-rest lt) (lazy-transformer (.-stepper lt)))
(set! (.-stepper lt) nil)
(.-rest lt))))]
(Stepper. (xform stepfn) iter)))