Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.65 KB | None | 0 0
  1.     static struct {
  2.         template<typename R>
  3.         R operator() (const Tree<T>& tree, std::function<R(T, R)> f, R initial) {
  4.             return _fold([=](NodePtr node, std::function<R(R)> l, std::function<R(R)> r) {
  5.                 return [=](R x) -> R { return r(f(node->data(), l(x))); };
  6.             }, std::function<R(R)>([](R x) -> R { return x; }), tree._root)(initial);
  7.         }
  8.     } inorder;
  9.  
  10.     template<typename Order>
  11.     void print(Order order) const {
  12.         order(*this,
  13.               std::function<int(T data, int)>(
  14.                   [](T data, int) -> int { std::cout << data << " "; return 0; }),
  15.               0);
  16.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement