I've created a new Clojure intro at 
http://en.wikibooks.org/wiki/Learning_Clojure.
While Rich's screencasts and reference docs are great, they don't
always lay things out in a digestible order. My intro is meant as a
sequential tour through the essential concepts, not a practical
tutorial. In particular, my examples are deliberately cursory and
abstract, and my API coverage is very minimal.

I'm sure the text has some rough spots because at times I went ahead
and speculated about points I'm not 100% about. For instance, the way
I described the evaluation rules coherently explains how ((foo) bar)
is evaluated, but I'm not sure the rules I described are how Clojure
actually works. The text is also a bit out of date already, e.g. I
don't mention AOT or Atoms. So please read through the text and
correct or excise any gaffes, or please comment on deficiencies here
or the book's talk page.

One thing I'd like to add is a discussion about how to imitate
traditional single- or multiple-inheritance using multimethods,
including basics like how to organize such code into files and
namespaces, but I'm not clear on how this should be done myself.

Another issue I had is we don't have a good blanket term for Vars,
Refs, Agents, and Atoms. Rich sometimes calls them "reference types",
but that term already has a different meaning in Java. I considered
"meta-references", but then I realized that, say, the symbol pointing
to a Var is a meta-reference---a reference pointing to a reference---
not the Var itself. I've settled for now on "reference object" and
"reference object type", but these are confusingly close to "reference
type".
--~--~---------~--~----~------------~-------~--~----~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to