On 09.05.2009, at 03:50, samppi wrote: > I'm trying to use m-plus inside a macro like this: > > (defmacro alt > [& subrules] > (with-monad parser-m > `(fn [state#] > ((m-plus ~...@subrules) state#)))) > > Unfortunately, I get the error: > No such var: my-namespace.fnparse/m-plus
Write ~'m-plus instead of m-plus. That protects the symbol from being namespace-qualified by syntax-quote (`), and permits it to be bound by the let form that with-monad expands into. Now that monads use symbol macros (a change that's a few days old), it may be possible to make the four monad operations m-result, m- bind, m-zero, and m-plus normal namespace-qualified symbols in clojure.contrib.monads. I will look into this. A more uniform access would certainly make their use easier to understand. Konrad. --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---