On Friday, March 8, 2013 4:56:03 PM UTC+1, nick rothwell wrote:
>
> Typing the following at a REPL:
>
> (str ::junk/junk)
>
> (where there's no alias for junk) gives me:
>
> RuntimeException Invalid token: ::junk/junk 
>  clojure.lang.Util.runtimeException (Util.java:219)
> RuntimeException Unmatched delimiter: ) 
>  clojure.lang.Util.runtimeException (Util.java:219)
>
> A couple of things:
>
> (i) Invalid token seems a bit curt: doesn't it mean something like "no 
> such namespace alias"?
>

This could definitely benefit from an improvement in the reader/compiler.
 

> Another aside: why does Clojure require "::" for aliases but only ":" for 
> namespace-qualified keywords? Under what circumstance would I use 
> :junk/junk in any way other than to mean ::junk/junk (or 
> :my.namespace.junk/junk, given the appropriate alias)?
>

::keyword being a shortcut for ::current-ns/keyword is more consistent (so 
less surprising) than being a shortcut for :current-ns/keyword. String 
value of a keyword is often important and dictated by outside constraints 
(conversion from/to string is common) so there's benefit to allowing a 
slash in it. I personally appreciate the :: to signal a qualified keyword. 
They are rare and special so it's nice to have them visually stand out. I 
bet other people can enumerate other reasons to support/criticise this 
design choice, but in the end there won't be much to learn from it.

-Marko

-- 
-- 
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/groups/opt_out.


Reply via email to