anchor.diff:    }
   ----
   
  -## Recursion and Trampolines in Scala
  +== Recursion and Trampolines in Scala
   
   
   Here our even and odd functions don't return domain specific values, but a general value that indicates whether the computation is done, or whether more steps are needed. The latter includes the next step as a by-name parameter, that the tail recursive runner function can call.
  
positive.code: 
  This strategy is sometimes called trampolining, because instead of creating a big stack, we go up to `even`, then down to run, then up to `odd`, then down to run, then up to `even`, down to run, etcetera. The size of our stack keeps growing and shrinking by one frame for every step in the computation. This looks a lot like going up and down on a trampoline :)
  
  ## Generalizing
  
  There is no need to specialize our little language to computing `even` and `odd`. We can also make a little language that can express recursion in a general way:
  
  
negative.code: 
  You can try this out by putting the `@tailrec` annotation on the first and the latest version of even that we've defined.
  
  == Trampolines
  
  Another way of solving the problem of consuming too much stack space, is by moving the computation from the stack to the heap.
  
  