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

Reply via email to