To rebind a macro in clojure.core you would need to first enter that namespace:
(in-ns 'clojure.core) Or, create your own dosync in a different namespace which explicitly does not refer to clojure.core/dosync. See the docstring for clojure.core/ns for using :exclude. Stuart > > On Jul 10, 10:28 pm, Stuart Halloway <stuart.hallo...@gmail.com> > wrote: >> binding to a thread. The snake game could be extended to be a >> simulation that runs on multiple threads (or perhaps even multiple > > Makes sense. For the example in the book it just seemed completely > redundant. And when writing Swing code, at least in Java you often > make use of the fact that everything is single-threaded, including all > events. Otherwise life would be hell. > > In Clojure of course multi-threading is much easier, but I wonder > whether in most clojure Swing applications, I should use clojure's > transactions when only working on a single thread. Transactions do > involve some overhead, which is unnecessary in most (of my) Swing > applications. For cases where I have to leave the EDT, like blocking > io, I do take care of threading issues. > >> You can rebind macros, but in order to use them you have to compile >> some code again. > > Recompiling would be fine in this case, but how can I rebind macros? > When doing a > > (defmacro dosync [& body] ...) > > it gives me this: > > java.lang.Exception: Name conflict, can't def dosync because > namespace: user refers to:#'clojure.core/dosync (NO_SOURCE_FILE:8) --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---