eval isn't calling itself, it's calling the method Compiler#eval.  (defn 
eval ...) binds the function to a var named eval, but (. 
clojure.lang.Compiler (eval form)) is invoking a static method.  See the dot 
special form docs <http://clojure.org/java_interop#Java Interop-The Dot 
special form>.

On Friday, July 24, 2015 at 10:27:52 AM UTC-4, SteveSuehs wrote:
>
> I am looking at the source for clojure's core eval function.  It appears 
> to recursively call itself.  Is the eval used to call a method on compiler 
> not the same eval? How is this not infinitely recursive?  Is something lazy 
> here?
>
> Links:
> * Clojure eval 
> https://github.com/clojure/clojure/blob/bdc752a7fefff5e63e0847836ae5e6d95f971c37/src/clj/clojure/core.clj
> * Compiler 
> https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Compiler.java
>
> Thanks!
> -Steve
>

-- 
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/d/optout.

Reply via email to