anchor.diff:  1. Takes one or more functions as arguments
   2. Returns a function as its result
   
  -This will turn out to be a important concept in functional programming in any language.
  +This is an important concept in functional programming in any language.
   
   Higher order functions allow us to _compose_ functions.
   This means we can write small functions and combine them to create larger functions.
  -Like putting a bunch of small lego bricks together to build a house.
  +Like putting a bunch of small LEGO bricks together to build a house.
   
   Let's move away from theory a bit and look at an example.
   
  
positive.code: ----
  
  This code works fine, but it's bulky and confusing.
  We can simplpify this using `filter`, a higher order function.
  
  [source, clojure]
  ----
  
negative.code: 
  It's common to see function definitions in Clojure using `defn` like `(defn foo ...)`.
  However, this is just syntactic sugar for `(def foo (fn ...))`
  `fn` returns a function object.
  `defn` returns a var which points to a function object.
  
  == Higher Order Functions
  
  