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

Reply via email to