1. More clojure notes

    P84
    In Clojure, it is idiomatic to name predicates with a trailing question mark, for example true?, false?, nil?, and zero?

    Clojure does not allow programs to define new reader macros. The rationale for this has been explained (and debated) on the Clojure mailing list. https://www.google.com/accounts/ServiceLogin?service=groups2&passive=1209600&continue=http://groups.google.com/group/clojure/browse_thread/thread/f1148b3569e8d275/449ecde621e04b68?lnk%3Dgst%26q%3Dreader%2Bmacro%26pli%3D1&followup=http://groups.google.com/group/clojure/browse_thread/thread/f1148b3569e8d275/449ecde621e04b68?lnk%3Dgst%26q%3Dreader%2Bmacro%26pli%3D1

    You can create a function with variable arity by including an ampersand in the parameter list. Clojure will bind the name after the ampersand to a sequence of all the remaining parameters.

    Check out ClojureDoc:
    http://itunes.apple.com/us/app/clojuredoc/id401479442?mt=8

    http://jonathanwatmough.com/2008/02/google-charts-from-clojure/

    When you define an object with def or defn, that object is stored in a Clojure var. The initial value of a var is called its root binding. Sometimes it is useful to have thread-local bindings for a var.