这个有条件的wu.autoCurry会被满足吗?

时间:2014-05-08 18:49:33

标签: javascript function functional-programming currying

以下是该功能。我只是不知道"其他"那个三元手术可能会被执行,但如果我错过了一些我想知道的事情

wu.autoCurry = function (fn, numArgs) {
    numArgs = numArgs || fn.length;
    return function () {
        if (arguments.length < numArgs) {
            return numArgs - arguments.length > 0 ?
                wu.autoCurry(wu.curry.apply(this, [fn].concat(toArray(arguments))),
                             numArgs - arguments.length) :
                // in what situation would this line below run?
                wu.curry.apply(this, [fn].concat(toArray(arguments)));
        }
        else {
            return fn.apply(this, arguments);
        }
    };
};

这也是他们的咖喱功能:

wu.curry = function (fn /* variadic number of args */) {
    var args = ARR_SLICE.call(arguments, 1);
    return function () {
        return fn.apply(this, args.concat(toArray(arguments)));
    };
};

0 个答案:

没有答案