On Wed, Feb 23, 2011 at 4:54 PM, Alessio Stalla <alessiosta...@gmail.com> wrote: > On 23 Feb, 19:51, Ken Wesson <kwess...@gmail.com> wrote: >> Java has a lack of this top-down processing, > > That's not true, what do you mean? > > class Foo { > void bar() { baz(); } > void baz() {} > } > > compiles fine, as well as > > class Foo { > void bar() { new Baz(); } > } > > class Baz {}
That's *exactly* what I mean. Java allows forward references. >> and it sometimes causes >> problems because the order in which static initializers will execute >> is not generally predictable. > > Static initializers are executed at runtime, so this has nothing to do > with how the compiler processes declarations. Clojure source files are more like giant static initializers than like compile-time Java declarations. They actively do things -- usually, construct things and intern symbols in namespaces to refer to them (your defs and defns). In particular, they execute at run-time. -- 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