Hello Nick,
"Nick Sabalausky" <[email protected]> wrote in message
news:[email protected]...
"Nick Sabalausky" <[email protected]> wrote in message
news:[email protected]...
Assuming, of course, a 'max' that works on a range, which would be
easy enough to do. Probably something like:
ElementType!T max(T range) // Corrected
{
return reduce!ordinaryMax(range);
// Or
return reduce!"a>b?a:b"(range);
}
Or:
alias reduce!"a>b?a:b" max;
God, I love D :)
so we have:
alias reduce!"a>b?a:b" range_max;
CommonType!(staticMap!(ElementType, T)) largestElement(T...)(T args)
{
static assert( !is(typeof(return) == void) );
return max( map!max(args) );
}
Why isn't that just one line, like:
alias polyMapReduce!(reduce!"a>b?a:b", "a>b?a:b") largestElelemt;
I'm shure a better one could be written but I think this would do it:
auto polyMapReduce(alias map, string reduce, T...)(T t)
{
static assert(T.length > 0);
static if(T.length > 1)
{
auto a = map(t[0]);
auto b = polyMapReduce!(map,reduce)(t[1..$]);
return mixin(reduce);
}
else
return map(t[0]);
}
--
... <IXOYE><