Hello, When I read the source code keyword, say, Keyword.java (V1.3), I found that when we "intern" a keyword, (if I understand it correctly) it uses a cache for keywords: ============================================= public static Keyword intern(Symbol sym) { if (sym.meta() != null) sym = (Symbol) sym.withMeta(null); *Util.clearCache(rq, table);* Keyword k = new Keyword(sym); Reference<Keyword> existingRef = table.putIfAbsent(sym, new WeakReference<Keyword>(k, rq)); if (existingRef == null) return k; Keyword existingk = existingRef.get(); if (existingk != null) return existingk; // entry died in the interim, do over table.remove(sym, existingRef); return intern(sym); } ==============================================
well, I just don't understand why we need caching for keywords. Anyone could give me a hint? -- 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