> There are a very few functions and a few more vars defined only in > Java code, but that participate in namespaces the normal way and > therefore don't count as special forms. > > One way to find these is to get a list of all the clojure.core vars > that have no :file metadata: > (filter #(nil? (:file (meta %))) (vals (ns-publics 'clojure.core))) > > These are the functions: > load-file in-ns identical? > > Note that even though 'in-ns' and 'ns' are not special forms, they are > handled specially in the resolver so you never need to give the > namespace using them. > > The other documented vars are: > > *agent* > *command-line-args* > *compile-files* > *compile-path* > *err* > *file* > *flush-on-newline* > *in* > *ns* > *out* > *print-dup* > *print-meta* > *print-readably* > *warn-on-reflection* > > What the remaining vars do is a mystery for all but those willing to > plumb the depths of Clojure's Java sources: > > *macro-meta* > *math-context* > *use-context-classloader* > > All (or nearly?) of these forms are defined starting around here: > http://code.google.com/p/clojure/source/browse/trunk/src/jvm/clojure/lang/RT.java#171 > > --Chouser
Very interesting, thanks Chouser! -Jason --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---