FC++ compose

複数の関数を合成する

高階多相型関数というらしい

#include <iostream>
#include <iterator>
#include <algorithm>
#include <boost/fcpp/prelude.hpp>

using namespace fcpp;

int main()
{
    list<int> ls = list_with<>()(3, 1, 4);

    ls = map(compose(inc, inc), ls); // 全要素に+2

    std::copy(ls.begin(), ls.end(), std::ostream_iterator<int>(std::cout, ","));
        // 5,3,6

    return 0;
}
ls = map(compose(inc, compose(inc, inc)), ls); // 全要素に+3
ls = map(compose(inc, dec), ls); // +1, -1


FC++ まとめ