On Wednesday, 5 November 2014 at 00:34:54 UTC, Meta wrote:
On Wednesday, 5 November 2014 at 00:32:32 UTC, Nordlöw wrote:
Has there been any proposals to add a sort-wrapper, say sortBy,
in cases such as
struct X { double x, y, z; }
auto r = new X[3];
used as
r.sortBy!("x", "y")
sorting r by value of "x" then "y".
If not and anybody is interest I could write one and make PR
in std.algorithm.
I think you're looking for multiSort.
http://dlang.org/phobos/std_algorithm.html#.multiSort
That's not the same, it requires to specify a comparison
function. Nordlöw wants to specify an attribute.
This could also be an arbitrary expression, of course:
r.sortBy!"x*x + y*y + z*z"
The above could be implemented using `with` and
`std.functional.unaryFun`. Alternatively, a lambda could be used:
r.sortBy!(a => a.norm);