Now I do, and the macro worked!
I believe I have a problem using the macro from a function, but leaving
that for tomorrow.

Thanks BG!

-A



On Tue, Dec 18, 2012 at 12:19 AM, Baishampayan Ghose <b.gh...@gmail.com>wrote:

> 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
>

-- 
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

Reply via email to