title: What can C++ offer as far as functional programming?
body: <p>Are the following things, considered intrinsic to FP, possible in C++?</p>
  <ul>
  <li>higher order functions</li>
  <li>lambdas (closures/anonymous functions)</li>
  <li>function signatures as types</li>
  <li>type polymorphism (generics)</li>
  <li>immutable data structures</li>
  <li>algebraic data types (variants)</li>
  <li>adhock data structures (tuples)</li>
  <li>partial function applications</li>
  <li>type inference</li>
  <li>tail recursion</li>
  <li>pattern matching</li>
  <li>garbage collection</li>
  </ul>