;; consumed everything
(time (println
"transduce result:" (vec
(take
3 (transduce
(map
#(do (println "transduce consumed:" %) %)) conj (take 5 (iterate #(do (Thread/sleep 500) (inc %)) 1)))))))
;; consumed needed
(time (println
"lazy result:" (vec
(take
3 (map
#(do (println "lazy consumed:" %) %) (take 5 (iterate #(do (Thread/sleep 500) (inc %)) 1)))))))
OzsgY29uc3VtZWQgZXZlcnl0aGluZwoodGltZSAocHJpbnRsbiAidHJhbnNkdWNlIHJlc3VsdDoiICh2ZWMgKHRha2UgMyAodHJhbnNkdWNlIChtYXAgIyhkbyAocHJpbnRsbiAidHJhbnNkdWNlIGNvbnN1bWVkOiIgJSkgJSkpIGNvbmogKHRha2UgNSAoaXRlcmF0ZSAjKGRvIChUaHJlYWQvc2xlZXAgNTAwKSAoaW5jICUpKSAxKSkpKSkpKQoKOzsgY29uc3VtZWQgbmVlZGVkCih0aW1lIChwcmludGxuICJsYXp5IHJlc3VsdDoiICh2ZWMgKHRha2UgMyAobWFwICMoZG8gKHByaW50bG4gImxhenkgY29uc3VtZWQ6IiAlKSAlKSAodGFrZSA1IChpdGVyYXRlICMoZG8gKFRocmVhZC9zbGVlcCA1MDApIChpbmMgJSkpIDEpKSkpKSkp