anchor.diff:  (add-five 100)
   ;; => 105
   ----
  +
  +The returned function form `adder` is a closure.
  +This means, it can access all of the variables that we're in scope when the function was created.
  +`add-five` has access to `x` even though it is outside of the `adder` function definition.
  +
  +=== Functions as Arguments
   
   Our second function is going to be a factory of sorts.
   We're going to call it, `make-greeter`.
  
positive.code: 
  == Functions are Values
  
  In functional programming languages, functions are values.
  
  For instance, say we want to write a function that will double a number.
  In most languages, you can define a function like so.
  
  [source, java]
  ----
  public static Int double (int a ) {
      return 2 * a;
  }
  ----
  
  This should look very familiar.
  
negative.code: 
  [source, clojure]
  ----
  (def bands [{:name "Kiss"
               :genre :rock}
              {:name "Led Zeppelin"
               :genre :rock}
              {:name "Michael Jackson"
               :genre :pop}
              {:name "Eminem"
               :genre :rap}])
  
  (defn rock-band? 
      [band]
  