On Sun, 19 Sep 2010 12:22:54 -0700 (PDT)
ataggart <[email protected]> wrote:

> Unlike symbols, keywords just evaluate to themselves. The keyword :foo
> will not collide with a var foo, likewise keyword :my-ns/foo will not
> collide with var my-ns/foo.  So, if I understand you correctly, :xsl/
> value-of would work just fine.

Right, I understand that the keyword and the symbol themselves are
distinct. I guess what I'm asking about is the meaning of their
namespaces to the evaluator, and probably is best illustrated like this:

  user=> (require '[some.library :as xsl])
  nil
  ;; now the namespace "xsl" has semantic meaning on symbols when
  ;; they're evaluated in this context:
  user=> #'xsl/value-of
  #'some.library/value-of

Is there any situation where, in that examaple, the namespace "xsl" on
a keyword such as :xsl/value-of might be conflated with the namespace
alias "xsl" that I created with require? Or, does Clojure consider
keyword namespaces to be completely meaningless and opaque, the same
as it does with their names?

I can't find any situation where the two blur together except for
the ::keyword syntax, but I suspect this is nothing more than a
superficial syntactic trick. Still, I want to make sure I'm not missing
something.

-Kyle

> 
> On Sep 19, 11:56 am, Kyle Schaffrick <[email protected]> wrote:
> > Would it be correct to say that the namespace portions of keywords
> > are semantically opaque?
> >
> > In other words, if I have a keyword :my-ns/foo and a symbol
> > 'my-ns/foo, obviously the namespace in the symbol has semantic
> > meaning to the language when it's evaluated (or syntax-quoted), but
> > the namespace of the keyword does not appear carry that meaning,
> > almost as if they are in two separate "meta-namespaces". Is that
> > pretty much guaranteed as far as the language is concerned?
> >
> > I'm asking because I've become the latest in the line of Clojurians
> > to go tilting at the "SXML-in-Clojure" windmill, and if I decide
> > use the namespace portion of a keyword (for example :xsl/value-of)
> > I want to be certain it's always distinct in meaning from any
> > Clojure namespaces or aliases of the same name.
> >
> > The code I teased apart into this library currently uses keywords
> > like :xsl:value-of to distinguish XML namespaces from Clojure
> > namespaces, just as a matter of "that was the first thing I thought
> > of", but it would certainly be saner to stop wasting effort
> > splitting them apart by hand with string munging and simply bestow
> > my own meaning on the keywords' namespaces if the language itself
> > doesn't give them any meaning.
> >
> > Thanks,
> > -Kyle
> 

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to