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

Reply via email to