Skip to content

Динамическое подмешивание преобразователей

Иногда требуется создать преобразователь "на ходу", исходя из значения входного символа.

Простой пример, как это может выглядеть:

// Добавить к каждому входному элементу длину группы, в которую он попадает.
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).

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information