anchor.diff:  [[binding-forms]]
   == Binding Forms (Destructuring)
   
  -Clojure supports abstract structural binding, often called destructuring, in let binding lists, fn parameter lists, and any macro that expands into a `let` or `fn`. The basic idea is that a `binding-form` can be a data structure literal containing symbols that get bound to the respective parts of the `init-expr`. The binding is abstract in that a vector literal can bind to anything that is sequential, while a map literal can bind to anything that is associative.
  +Clojure supports abstract structural binding, often called destructuring, in let binding lists, fn parameter lists, and any macro that expands into a `let` or `fn`. A _binding-form_ can be a data structure literal containing symbols that get bound to the respective parts of the __init-expr__. The binding is abstract in that a vector literal can bind to anything that is sequential, while a map literal can bind to anything that is associative.
   
   === Vector binding destructuring
   
  -Vector `binding-exprs` allow you to bind names to parts of _sequential_ things (not just vectors), like vectors, lists, seqs, strings, arrays, and anything that supports https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/nth[`nth`]. The basic sequential form is a vector of `binding-forms`, which will be bound to successive elements from the `init-expr`, looked up via `nth`. In addition, and optionally, `&` followed by a `binding-forms` will cause that `binding-form` to be bound to the remainder of the sequence, i.e. that part not yet bound, looked up via https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/nthnext[`nthnext`].
  -
  -Finally, also optional, `:as` followed by a symbol will cause that symbol to be bound to the entire `init-expr`:
  +Vector __binding-expr__s allow you to bind names to parts of _sequential_ things (not just vectors), like vectors, lists, seqs, strings, arrays, and anything that supports https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/nth[`nth`]. The basic sequential form is a vector of __binding-form__s, which will be bound to successive elements from the __init-expr__, looked up via `nth`. In addition, and optionally, `&` followed by a __binding-form__ will cause that __binding-form__ to be bound to the remainder of the sequence, i.e. that part not yet bound, looked up via https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/nthnext[`nthnext`].
  +
  +Finally, also optional, `:as` followed by a symbol will cause that symbol to be bound to the entire __init-expr__:
   
   [source,clojure]
   ----
  
positive.code: ----
  
  [[throw]]
  == (_throw_ expr)
  
  The `expr` is evaluated and thrown, therefore it should yield an instance of some derivee of `Throwable`.
  
  [[try]]
  == (_try_ expr* catch-clause* finally-clause?)
  
  `catch-clause` -> `(_catch_ classname name expr*)` +
  `finally-clause` -> `(_finally_ expr*)`
  
  The `exprs` are evaluated and, if no exceptions occur, the value of the last expression is returned. If an exception occurs and `catch` clauses are provided, each is examined in turn and the first for which the thrown exception is an instance of the named `class` is considered a matching `catch` clause. If there is a matching `catch` clause, its `exprs` are evaluated in a context in which `name` is bound to the thrown exception, and the value of the last is the return value of the function. If there is no matching `catch` clause, the exception propagates out of the function. Before returning, normally or abnormally, any `finally` `exprs` will be evaluated for their side effects.
  
  [[monitor-enter]]
  == (_monitor-enter_ x)
  
  [[monitor-exit]]
  == (_monitor-exit_ x)
  
  These are synchronization primitives that should be avoided in user code. Use the `_**locking**_` macro.
  
  == Other Special Forms
  
  
negative.code: *Locals created with `let` are not variables. Once created their values never change!*
  
  [[quote]]
  == (`quote` _form_)
  
  Yields the unevaluated _form_.
  
  [source,clojure-repl]
  ----
  