http://d.puremagic.com/issues/show_bug.cgi?id=4705
--- Comment #16 from [email protected] 2013-04-14 14:23:35 PDT --- I still think mins()/maxs() are useful. But years after the original proposal an API change in max/min is now problematic (unless you want to introduce maximum/minimum functions). So I propose a small change in my original request. Now I suggest to keep the max/min functions diadic as they are now, and add the optional 'key' function. This is a backwards-compatible change in max/min. This is the updated example code presented here: http://d.puremagic.com/issues/show_bug.cgi?id=4705#c5 import std.stdio, std.algorithm, std.range, std.typecons; auto hailstone(int n) pure nothrow { auto result = [n]; while (n != 1) { n = (n & 1) ? (n * 3 + 1) : (n / 2); result ~= n; } return result; } void main() { iota(1, 1000) .map!(i => tuple(i.hailstone.length, i)) .reduce!max[1] .writeln; // 871 } With the original proposal the main() becomes (with the maximum the code is very similar): void main() { iota(1, 1000) max!(i => i.hailstone.length) .writeln; } With the reduced proposal the main() becomes: void main() { iota(1, 1000) reduce!(max!(i => i.hailstone.length)) .writeln; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
