/* @copyright Louis Dionne 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) */ #include #include #include #include using namespace boost::hana; int main() { //! [main] auto to_string = [](auto x) { return (std::ostringstream{} << x).str(); }; auto show = [=](auto x, auto y) { return "(" + to_string(x) + " + " + to_string(y) + ")"; }; assert(foldr(show, "4", list(1, "2", '3')) == "(1 + (2 + (3 + 4)))"); //! [main] }