anchor.diff:  
   == Lisp: Functions
   
  -- Functions are first-class (can be passed as arguments, etc)
  -- The usual functional programming suspects exist (`map`, etc)
  +- Functions are first-class (can be passed as arguments, returned
  +  from other functions, etc)
  +- The usual functional programming suspects exist (`map`, `reduce`,
  +  `filter`, etc)
   - Common lisp needs sharp-quote (`#'`) for function quoting
   - Lambda expressions exist (and must also be sharp-quoted)
   
  
positive.code: ** Good interoperability with Java libraries
  
  * Concurrency primitives in the standard library
  ** STM: agents, refs, atoms.
  
  * Prefers purely-functional programming styles and idioms
  ** Immutable data structures
  ** Imperative style is still possible, but de-emphasized
  
  == Clojure: Code
  
  
negative.code: (sum-list '())               ; => 0
  ------------------------------------------------------
  
  (Note, example is not tail-call optimised)
  
  == Lisp: Macros
  
  - Lisp is _homoiconic_; its programs are comprised of lists
  - That lends itself to code which manipulates or produces other code
  - Macros can be used to invent your own control structures, by controlling
    what elements are evaluated
  