Do you have target ns "clevolution.version.version0-1-1" required?
-BG On Tue, Dec 18, 2012 at 1:38 PM, Alan Shaw <noden...@gmail.com> wrote: > BG, > The macro doesn't seem to do the trick. The function X is interned in the > target namespace, but: > > user=> (def image (eval-in "(X 400 400)" > "clevolution.version.version0-1-1")) > CompilerException java.lang.RuntimeException: Unable to resolve symbol: X in > this context, compiling:(NO_SOURCE_PATH:1) > > > On Mon, Dec 17, 2012 at 11:53 PM, Alan Shaw <noden...@gmail.com> wrote: >> >> Oh yes, the something.something is fixed so I can just prepend it, thanks. >> (Hadn't noticed your macro takes the ns as a string!) >> >> -A >> >> >> >> On Mon, Dec 17, 2012 at 11:47 PM, Baishampayan Ghose <b.gh...@gmail.com> >> wrote: >>> >>> Alan, >>> >>> What you're asking for is to derive the ns "clojure.core" given only >>> "core". Not sure if that's possible. >>> >>> The namespace constitutes the whole dotted structure and not just the >>> last component, I am afraid. >>> >>> If the actual ns is something.something.version-0-1-1, then you need >>> the string "something.something.version-0-1-1" and not just >>> "version-0-1-1" [unless of course you have some other way of deriving >>> it from info that's embedded in _your_ code or structure thereof]. >>> >>> >>> -BG >>> >>> On Tue, Dec 18, 2012 at 1:10 PM, Alan Shaw <noden...@gmail.com> wrote: >>> > Thanks BG, I'm trying that. >>> > But I don't think it addresses how to get from the string >>> > "version-0-1-1" to >>> > the namespace something.something.version-0-1-1. How can I do that? >>> > >>> > -A >>> > >>> > >>> > >>> > On Mon, Dec 17, 2012 at 11:26 PM, Baishampayan Ghose >>> > <b.gh...@gmail.com> >>> > wrote: >>> >> >>> >> Alan, >>> >> >>> >> Something like this might work for you - >>> >> >>> >> (defmacro eval-in >>> >> "Eval a Clojure form in a different namespace and switch back to >>> >> current namespace. >>> >> >>> >> Args: >>> >> code - Clojure form as string >>> >> ns - Target namespace as string" >>> >> [code ns] >>> >> `(do >>> >> (in-ns '~(symbol ns)) >>> >> (let [ret# (eval '~(read-string code))] >>> >> (in-ns '~(ns-name *ns*)) >>> >> ret#))) >>> >> >>> >> Warning - I haven't really tested this code. >>> >> >>> >> -BG >>> >> >>> >> On Tue, Dec 18, 2012 at 12:37 PM, Alan Shaw <noden...@gmail.com> >>> >> wrote: >>> >> > Thanks, Las! >>> >> > >>> >> > Ok say I have a file in which there is string such as >>> >> > >>> >> > "(- (atan (bw-noise 902 2 0.7604615575402431 400 400)) >>> >> > (read-image-from-file >>> >> > \"images/Dawn_on_Callipygea.png\"))" >>> >> > >>> >> > and another >>> >> > >>> >> > "version-0-0-1" >>> >> > >>> >> > and I have a namespace version-0-0-1 into which functions named atan >>> >> > etc. >>> >> > are all :referred. I want to evaluate the expression in that >>> >> > particular >>> >> > context, and not remain there when I'm done. >>> >> > >>> >> > -A >>> >> > >>> >> > >>> >> > >>> >> > On Mon, Dec 17, 2012 at 11:00 PM, László Török <ltoro...@gmail.com> >>> >> > wrote: >>> >> >> >>> >> >> ah, sorry, it's a bit early for me >>> >> >> >>> >> >> (in-ns (ns-name user-ns)) >>> >> >> >>> >> >> if you could post a simple example for the second part of your >>> >> >> question >>> >> >> I >>> >> >> maybe able to help. >>> >> >> >>> >> >> Las >>> >> >> >>> >> >> Alan Shaw 2012. december 18., kedd napon a következőt írta: >>> >> >> >>> >> >>> Ah no, that puts me in a new user-ns namespace! Not what I wanted! >>> >> >>> >>> >> >>> >>> >> >>> On Mon, Dec 17, 2012 at 10:51 PM, László Török >>> >> >>> <ltoro...@gmail.com> >>> >> >>> wrote: >>> >> >>>> >>> >> >>>> Try (in-ns 'user-ns) >>> >> >>>> >>> >> >>>> Las >>> >> >>>> >>> >> >>>> On Dec 18, 2012 7:50 AM, "Alan Shaw" <noden...@gmail.com> wrote: >>> >> >>>>> >>> >> >>>>> user=> *ns* >>> >> >>>>> #<Namespace user> >>> >> >>>>> user=> (def user-ns *ns*) >>> >> >>>>> #'user/user-ns >>> >> >>>>> user=> user-ns >>> >> >>>>> #<Namespace user> >>> >> >>>>> user=> (in-ns user-ns) >>> >> >>>>> ClassCastException clojure.lang.Namespace cannot be cast to >>> >> >>>>> clojure.lang.Symbol clojure.lang.RT$1.invoke (RT.java:226) >>> >> >>>>> >>> >> >>>>> It appears I'm not understanding how namespaces are represented. >>> >> >>>>> >>> >> >>>>> Also, is it just wrong of me to want to remember a namespace I >>> >> >>>>> was >>> >> >>>>> working in and try to go back to it later? >>> >> >>>>> >>> >> >>>>> The slightly larger context is: I'm saving an s-expression with >>> >> >>>>> unqualified names in it into a file as a string. Also saving a >>> >> >>>>> string >>> >> >>>>> indicating the name of the environment in which that string >>> >> >>>>> should >>> >> >>>>> be (read >>> >> >>>>> and) eval'ed so that the names will resolve to the appropriate >>> >> >>>>> functions. >>> >> >>>>> Advice on managing this would be appreciated. >>> >> >>>>> >>> >> >>>>> -Alan Shaw >>> >> >>>>> >>> >> >>>>> -- >>> >> >>>>> 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 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 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 >>> >> >> >>> >> >> >>> >> >> >>> >> >> -- >>> >> >> László Török >>> >> >> >>> >> >> -- >>> >> >> 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 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 >>> >> >>> >> >>> >> >>> >> -- >>> >> Baishampayan Ghose >>> >> b.ghose at gmail.com >>> >> >>> >> -- >>> >> 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 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 >>> >>> >>> >>> -- >>> Baishampayan Ghose >>> b.ghose at gmail.com >>> >>> -- >>> 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 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 -- Baishampayan Ghose b.ghose at gmail.com -- 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