Re: special forms vs. functions and macros

2009-02-03 Thread Jason Wolfe
> 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?

Re: special forms vs. functions and macros

2009-02-03 Thread Telman Yusupov
Jason, thanks a lot for the tip on "source" macro in clojure.contrib.repl-utils, it is indeed very nifty! Resolution for the day: get to know the contrib library! On Feb 2, 9:48 pm, Jason Wolfe wrote: > I believe that any non-special-form has a clojure implementation in > some .clj file, althou

Re: special forms vs. functions and macros

2009-02-03 Thread Christophe Grand
Chouser a écrit : > 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* > I can shed some light on one third of this mystery: *math-context* can be bound to an instance o

Re: special forms vs. functions and macros

2009-02-03 Thread Chouser
On Mon, Feb 2, 2009 at 9:28 PM, Mark Volkmann wrote: > > I understand that special forms are all recognized by the Clojure > compiler clojure.lang.Compiler. Is it the case that all function and > macro definitions can be found in some .clj file, whether supplied > with Clojure or not? Asked anoth

Re: special forms vs. functions and macros

2009-02-02 Thread Jason Wolfe
I believe that any non-special-form has a clojure implementation in some .clj file, although that implementation may simply be a wrapper for a method in clojure.lang.RT. Also check out the source macro in clojure.contrib.repl_utils. It's quite nifty: user> (source into) (defn into "Returns a

Re: special forms vs. functions and macros

2009-02-02 Thread David Nolen
I think the special forms list on the Clojure main page lists all the constructs that are not written in Clojure itself. It seems most everything else can be found in the .clj files in the src directory. I'm constantly looking in there when I'm curious how something works or is implemented, espec