Nordlöw:
I'm trying to figure out how to use reduce with multiply funs.
import std.algorithm: min, max, reduce;
import std.typecons: tuple, Unqual;
import std.range: isInputRange, ElementType;
/// Returns: Tuple of Minmum and Maximum Element in X.
auto minMax(alias F = min, alias G = max, R)(in R range)
@safe pure nothrow if (isInputRange!R) {
return reduce!(F, G)(tuple(Unqual!(ElementType!R).max,
Unqual!(ElementType!R).min),
range);
}
unittest {
assert([1, 2, 3].minMax == tuple(1, 3));
}
void main() {}
If I replace ElementType!R.min and ElementType!R.max with a
values, say 0 and 1 it compiles. What is going on here?
This seems related:
http://forum.dlang.org/thread/bug-1040...@http.d.puremagic.com/issues/
You can't use reduce with a const seed.
Bye,
bearophile