On Friday, 28 June 2013 at 16:25:25 UTC, Brad Anderson wrote:
On Friday, 28 June 2013 at 16:04:35 UTC, Benjamin Thaut wrote:
I'm currently making a few tests with std.algorithm, std.range, etc

I have a arry of words. Is it possible to count how often each word is contained in the array and then sort the array by the count of the individual words by chaining ranges? (e.g. without using a foreach loop + hashmap)?

If you don't mind sorting twice:

words.sort()
     .group()
     .array()
     .sort!((a, b)=> a[1] > b[1])
     .map!(a => a[0])
     .copy(words);

You could also do it with a hashmap to keep the count.

It's just missing the construction scheme for "words". I had this:

    text
        .splitter();
        .reduce!((words, w)=>++words[w], words)(int[string]);

But alas... reduce's signature is not ctfe-able :(

Well, I've had a PR open for this for about 8 months now...

Reply via email to