On Wednesday, 20 January 2016 at 00:50:49 UTC, Ali Çehreli wrote:
On 01/19/2016 04:22 PM, QAston wrote:
[...]

Is this it? If so, is it already in std.functional? (I could not find it. :) )

auto appendMapped(alias f, R, T)(R r, T elem) {
    r ~= f(elem);
    return r;
}

int minus(int i) {
    return -i;
}

unittest {
    int[] ar;

template bindFirstParam(alias original, alias func, Args...) {
        auto bindFirstParam(Args...)(Args args) {
            return original!(func, Args)(args);
        }
    }

    alias appendMinus = bindFirstParam!(appendMapped, minus);

assert (appendMinus!(int[], int)(ar, 10) == [-10]); // compiles
    assert (appendMinus(ar, 10) == [-10]); // doesn't compile
}

void main() {
}

Ali

Works, thanks!

Reply via email to