title: Is there a C++ library similar/equivalent to Functional Java?
body: <p>Are there open source C++ libraries that are similar or equivalent to the excellent <a href="http://functionaljava.org/" rel="noreferrer">Functional Java library</a>?</p>
  
  <p>Specific features would include:</p>
  
  <ul>
  <li>map, fold/reduce, filter, etc on iterables or the like</li>
  <li>option type</li>
  <li>immutable data-structure implementations</li>
  </ul>
  
  <p><em>(asked out of curiosity, having been away from C++ for some years)</em></p>
  
  <p><strong>Yes,</strong> some of these features have traditionally been thought to require garbage collection. But with modern C++ features and libraries, has anyone started passing managed pointers through the functional transformations or something?</p>
  
  <p><strong>UPDATE</strong>
  To be clear, I'm wondering the there's something similar to Functional Java, so that the following might be typical syntax:</p>
  
  <pre><code>// assumptions:
  //   * my_list is a standard library iterable of ints
  //   * f is a function of int that returns a std::string
  //   * p is a predicate of std::string returning bool
  //   * head_opt returns an option type
  stream(my_list).map(f).filter(p).head_opt.get_or_else("None")
  </code></pre>
  
  <p>This is the idiom that Functional Java offers, and believe me it's really easy to get accustomed to it...</p>