It's a nasty bug, seems like a local symbol scope issue. I will take a look at it. Thanks for the report.
On Thursday, August 1, 2013 6:05:59 AM UTC-4, Kemar wrote: > > There seems to be an issue with the rebinding of loop-bindings using > loop/recur in go blocks, > specifically when you are just changing the order of the original bindings > in a recur call. > > Take this snippet for example: > > > (require '[clojure.core.async :refer [go timeout]]) >> (go (loop [a :black, b :white] >> (println a b) >> (<! (timeout 1000)) >> (recur b a))) >> > > Instead of repeatedly printing > > :black :white >> :white :black >> :black :white >> :white :black >> (...) >> > > it actually prints > > :black :white >> :white :white >> :white :white >> :white :white >> (...) >> > > Note however, that > > >> (require '[clojure.core.async :refer [go timeout]]) >> (go (loop [a :black, b :white] >> (println a b) >> (<! (timeout 1000)) >> (recur (identity b) (identity a)))) >> > > works correctly. > > Any ideas as to what's causing this? > > > Cheers, > Kevin > > -- -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.