Page 1 of 1

Purity

Posted: February 24th, 2019, 6:55 pm
by cyboryxmen

Code: Select all

template<typename Buffer>
constexpr Buffer pureSort(const Buffer& buffer)
{
    if(!buffer.empty())
    {
        const auto middle = buffer.front();

        auto output = integers(1, buffer.size()) | scan([middle](auto buffer, auto i, auto divider)
        {
            auto temp = buffer[divider];
            auto current = buffer[i];
            auto buffer2 = buffer.set(current, temp).set(temp, current);
            return select(buffer2, divider + 1).where(buffer[i] < middle).otherwise(buffer, divider);
        }, buffer, 0) | select_last();

        return pureSort(pureSort(output()));
    }
    else
    {
        return buffer();
    }
}
😩👌

Re: Purity

Posted: February 25th, 2019, 10:16 am
by chili
what are these unauthorized smileys :evil: