nested lambda
- lazyにおまけでbind関数を変更するためのパラメータ(Bind)を付けて置いたがこれが重要だった
- Bindにresult_of_lazy
::typeを渡すとネストされたlazyな関数を作れる (実装) - これで機械的に複雑なlambda式が作れるようになった、かも
- lvNはbll::protectをN回呼び出す
- nest1はlazyと同じ
// \x -> (\y -> (\z -> foo(y,z,x))) BOOST_CHECK( nest3(foo)(lv1(_1), lv2(_1), lv0(_1)) (3)(6)(1) == foo(6,1,3) ); // \x -> apply(\y -> minus(x,y), plus(x,3)) BOOST_CHECK( nest1(apply)(nest2(minus)(lv0(_1), lv1(_1)), nest1(plus)(lv0(_1), 3)) (9) == minus(9, plus(9,3)) );