函数“filter”返回一个数组[0,4]
,但我不明白它是如何得到的。你能解释“偏”吗?它是内置功能吗?我假设“op”应用“>”运算符到数组中的数字。因此,由于5大于0,它将被添加到数组“result”中。但是“部分”如何运作呢?
function filter(test, array) {
var result = [];
forEach(array, function (element) {
if (test(element))
result.push(element);
});
return result;
}
show(filter(partial(op[">"], 5), [0, 4, 8, 12]));
答案 0 :(得分:1)
在这种情况下,partial采用2个输入和1个值的函数。称它们为f(x,y)和a。它返回一个输入g(z)的函数。当你调用g(b)时,它返回f(a,b)。因此它的部分应用。过滤器需要一个输入的功能,而'<'是一个2输入函数。
Partial是一个函数,它接受一个函数并返回一个函数,该函数预先设置一个(或多个)输入。