私はJavaScriptでカリングを回避するように取り組んできましたが、渡された値の増分を返すためにカルト関数を複数回呼び出す方法がわかりません関数に追加します。ここでcurryを使用して別の値と等しい値になるまで
は私のコードです:
function curryFunc(x) {
var index = x;
var tmp;
return function(y) {
tmp = y;
index++;
if (index < tmp) {
console.log('index < y. index =',index);
} else {
console.log('end');
return;
}
}
};
var read = curryFunc(1);
var test = read(3);
test(); // 'index < y. index = 2'
test(); // This returns an error: js:32 Uncaught TypeError: test is not a function
は、どのように私はそれがy
に等しくなるまでtest
がx
の増加を記録し続けるために得ることができますか?
これはカレーを理解するのには関係ありません。カリー化された関数は、部分的にそれ自身を適用することができる関数です。それはかなりです。副作用とは関係がありません。あなたを混乱させるでしょう。 – elclanrs
ありがとう!私は質問を更新します。私は、返された関数のパラメータが 'tmp'変数に格納されていて、後続の呼び出しごとにアクセスできると考えていました。なぜそうは思われないのか分かりません。 – Mdd
あなたはカール以上に閉鎖について質問しているようです... – elclanrs