右結合のpipe

  • 関数呼び出しのシンタックスは醜い
  • f(g(h(x)) を f $ g $ h $ x の様な感じに書けるようにしたい
  • これはpipableを逆にしただけなので、何か右結合のoperator overloadをこの実装に追加すればいい
    • Pipableの概念に組み込むのがいいかもしれない
  • これを使ってOutputIteratorをpipe風にする
    • ぴったりくるoperatorが分からなかった
namespace bll = boost::lambda;
using namespace pstade::oven;

int const in[] = { 1,2,3,4,5,6,7,8,9,10 };
int const answer[] = {2*3,4*3,6*3,8*3,10*3};
std::vector<int> out;
copy(in, filterer(bll::_1 % 2 == 0)|=transformer(bll::_1 * 3)|=back_inserter|=out);
BOOST_CHECK( equals(out, answer) );