gpt4 book ai didi

javascript - 广义 Curry - Javascript

转载 作者:行者123 更新时间:2023-11-29 16:02:31 25 4
gpt4 key购买 nike

在阅读 article 时在 Javascript 中实现通用 curry 时,我偶然发现了这段代码。

function curry(fn) {
return (...xs) => {
if (xs.length === 0) {
throw Error('EMPTY INVOCATION');
}
if (xs.length >= fn.length) {
return fn(...xs);
}
return curry(fn.bind(null, ...xs));
};
}

我无法理解说明中的部分

We create a copy of fn that has the first k arguments bound (partially applied) and pass it to curry as the next fn, with its reduced arity of N - k.

fn 的元数是如何在后续调用中降为 N-k 的?一个有 k 个参数的绑定(bind)函数应该有一个 k 对吧?

最佳答案

绑定(bind)函数返回一个带有部分参数的函数,所以 f(a, b, c) 变成了 f.bind(null, a).bind(null, b)( c)

关于javascript - 广义 Curry - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50616087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com