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.