Clojure's *map* is agnostic to whether the mapping function has side effects. The only thing to keep in mind is that *map* is not imperative, but declarative: it gives you a lazy sequence whose elements will be the results of the mapping function. As soon as you realize the sequence, for example by printing it, the side effects will appear.
On Thursday, December 27, 2012 9:04:20 AM UTC+1, Kruno Saho wrote: > > This code works: > > (doseq [q @draw-queue] >> (draw-entity screen q))) > > > This code does not: > > (map (fn [e] (draw-entity screen e)) @draw-queue) >> > > The difference here is that `map` produces no side effects, while `doseq` > expects side effects. In Common Lisp, `map` can take side effect creating > functions. I am interested why this is not the case in Clojure. > > Thank You. > -- 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