Javascript 使用curry递增一个值,直到它等于另一个值

Javascript 使用curry递增一个值,直到它等于另一个值,javascript,Javascript,我一直在努力解决JavaScript中的curry问题,不知道如何获得对curry函数的多个调用以返回传递到函数中的值的增量 这是我的密码: 函数curryFunc(x){ var指数=x; var-tmp; 返回函数(y){ tmp=y; 索引++; if(指数

我一直在努力解决JavaScript中的curry问题,不知道如何获得对curry函数的多个调用以返回传递到函数中的值的增量

这是我的密码:

函数curryFunc(x){
var指数=x;
var-tmp;
返回函数(y){
tmp=y;
索引++;
if(指数test();//这将返回一个错误:js:32 Uncaught TypeError:test不是一个函数
,不幸的是,您没有正确地读取代码,结果输出和异常也没有正确

下面是真正发生的事情:

函数curryFunc(x){
var指数=x;
var-tmp;
返回函数(y){
tmp=y;
索引++;
if(指数test();//由于上述异常情况,这种情况从未发生。
问题在于
测试
不是一个函数。打印出的第一行由行
var test=read(3)打印
和对
测试的第一次调用
会导致错误。您必须反复调用
read
函数。也许您想这样做:

var read = curryFunc(1);
function test() {
    read(3);
}
test();
test();

我不确定这是否与理解咖喱有关。Curry函数是一个可以部分应用自身的函数,基本上就是这样,它与副作用无关,我想这会让你更加困惑。谢谢!我会更新这个问题。我认为返回函数的参数将存储在
tmp
变量中,并且可以通过后续每次调用进行访问。我不知道为什么情况似乎不是这样。你似乎在问关闭比咖喱…谢谢!你是绝对正确的,我不能相信我在控制台中记录值时犯了错误。感谢您提供的示例,我认为if语句需要有另一个函数才能返回到它,但不确定我是否完全掌握了它。我不认为我需要写这样的代码,但我最近读到的是咖喱,我想看看我是否可以用它来做一个例子,让我的思维围绕它。谢谢你的解释!