On Thursday, 16 October 2014 at 08:18:02 UTC, Atila Neves wrote:
This works:

import std.range;

auto groupBy(alias func, R)(R values)
    if (isInputRange!R)
{

    alias K = typeof(func(values.front));
    alias V = ElementType!R[];
    V[K] grouped;
    foreach(value; values) grouped[func(value)] ~= value;
    return grouped;
}


Thank you, that is surprisingly straightforward :)

Edwin

Reply via email to