Travis <twell...@gmail.com> writes:

> I'm just curious where those numbers come from. For example, if I
> compile the class bar.clj containing:
>
> (ns bar)
> (defn foo []
>   nil)
>
> I'll get three classes, one of which is:
>
> bar$foo__5.class

The numbers are just a global incrementing counter (the same one used
for gensym).  The reason for them is to make the names of the classes
unique, for example you can define your function foo twice:

(defn foo []
  nil)

(def baz foo)

(defn foo []
  5)

A more common example is anonymous functions (fn [] ...).  These all
have the same name "fn", but they obviously need to be written to
different class files.

-- 
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

To unsubscribe, reply using "remove me" as the subject.

Reply via email to