Динамическое подмешивание преобразователей
Иногда требуется создать преобразователь "на ходу", исходя из значения входного символа.
Простой пример, как это может выглядеть:
// Добавить к каждому входному элементу длину группы, в которую он попадает.
proxima::compose
(
proxima::group_by(predicate),
proxima::mixup([] (const auto & range)
{
auto size = range.size();
return
proxima::compose
(
proxima::join,
proxima::transform([size] (auto x) {return std::pair(x, size);}
);
},
proxima::to_vector
);
См. также композицию преобразователей #38 (closed).