On 4/21/15 10:07 AM, Chris wrote:
Here's bearophile's version of sorting an AA by value [1]
void main() {
import std.stdio: writeln;
import std.algorithm.sorting: multiSort;
import std.array: array;
const size_t[string] wCount = [
"hamster": 5,
"zorro": 80,
"troll": 90,
"algorithm": 80,
"beer": 80
];
auto pairs = wCount.byKeyValue.array;
assert(wCount.length == pairs.length);
pairs.multiSort!(q{a.value > b.value}, q{a.key < b.key});
assert(pairs[2].key == "beer");
foreach (const ref it; pairs)
writeln(it.key, ": ", it.value);
}
Should we add it to the documentation of
1. http://dlang.org/phobos/std_algorithm_sorting.html#.multiSort
2. http://dlang.org/hash-map.html
We should not be promoting string-based lambdas:
pairs.multiSort!((a, b) => a.value > b.value, (a, b) => a.key < b.key);
I think this would be a perfect addition for the disqus forum of that
function (once ddox gets to be the default). I don't want to get into
adding sample usages for every use case on every function to the
documentation.
-Steve