On Thursday, 11 September 2014 at 14:56:00 UTC, Daniel Kozak via
Digitalmars-d-learn wrote:
V Thu, 11 Sep 2014 14:49:02 +0000
bearophile via Digitalmars-d-learn
<digitalmars-d-learn@puremagic.com>
napsáno:
Daniel Kozak:
You can just use min:
import std.stdio, std.algorithm;
struct Thing {
uint x;
alias x this;
}
alias minimum = reduce!min;
void main() {
immutable ar1 = [10, 20, 30, 40, 50];
ar1.minimum.writeln;
immutable ar2 = [Thing(10), Thing(20), Thing(40)];
ar2.minimum.writeln;
}
Bye,
bearophile
Yep, this look the most idiomatic :).
Why there is no phobos function for minimum of array(range)?
There is: http://dlang.org/phobos/std_algorithm.html#.minPos
To note though: minPos will "find" the position of the smallest
element, whereas reduce will accumulate and return the lowest
value. That said:
alias minmax = reduce!(min, max);
auto mm = ar1.minmax();
auto min = mm[0];
auto max = mm[1];
Found both in one line of code, and only 1 iteration of ar1.