> > *ns* is a dynamic var, so it points to the current namespace when your > function is running. Most code doesn't switch into a target ns in order to > execute functions from it. >
I understand that, and I understand most code does not switch into the target ns. But this is not most code, this is the code generated by the gen-class directive to bootstrap your -main method from java. Both lein and clojure.main bootstrap your main method from inside "user", but gen-class does so from inside "clojure.core". So I want to know: 1) Why does the generated java class from gen-class has "clojure.core" as its current namespace? 2) Why doesn't the (ns) function inside my namespace change the current namespace? Thanks On Tuesday, 20 June 2017 17:25:30 UTC-7, Sean Corfield wrote: > > The “trick” I’ve adopted to get around this: > > > > (def my-ns **ns**) > > > > I stick that near the top of any file in which I want to refer to _*that*_ > namespace (as opposed to whatever the _*current*_ value of **ns** is > during evaluation, since it’s dynamic). > > > > Sean Corfield -- (970) FOR-SEAN -- (904) 302-SEAN > An Architect's View -- http://corfield.org/ > > "If you're not annoying somebody, you're not really alive." > -- Margaret Atwood > > > > On 6/20/17, 4:46 PM, "Didier" <clo...@googlegroups.com <javascript:> on > behalf of did...@gmail.com <javascript:>> wrote: > > > > Take this code: > > > > (ns dda.main > > (:gen-class)) > > > > (defn -main [] (prn (ns-name *ns*))) > > > > > If you bootstrap this through clojure.main, such as what lein does, it > will print the namespace as "user". But if you bootsrap it through the > generated java main class, it will return "clojure.core". > > > > My intuition would have assumed it would be running under "dda.main" as > the *ns*, or at least under "user", since that's a common convention. > > > > I'm curious to know why "clojure.core"? > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clo...@googlegroups.com <javascript:> > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+u...@googlegroups.com <javascript:> > 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 unsubscribe from this group and stop receiving emails from it, send an > email to clojure+u...@googlegroups.com <javascript:>. > For more options, visit https://groups.google.com/d/optout. > > -- 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.