2017-11-20 1 views
0

このコードスニペットは、数年前のカリング記事で見つかりましたが、作者はどのように動作するのか説明しませんでした。 fn変数とargs1変数がどこから来ているのか理解していますが、どのargs2がプロセス全体に含まれているかを理解するのは苦労しており、誰かが洞察力を提供できるかどうか疑問に思っていました。カリーニングと残りの広がり演算子

function curry(fn, ...args1) { 
    return (...args2) => { fn(...args1, ...args2); } 
} 
+0

これは[カリングしない](https://en.wikipedia.org/wiki/Currying#Contrast_with_partial_function_application)です。それは部分的なアプリケーションです! – Bergi

+0

何も説明しなければ、記事の要点は何ですか?また、リンクしていただけますか? – Bergi

+0

@Bergi私は、それがカリング機能を作成するというのがポイントだと思いますか?多分カレーの私の定義はかなり正しいわけではありません。 – zfrisch

答えて

0

curryは関数を返します。返された関数が呼び出されると、それ自身の引数が渡されることがあります。それらはargs2によって参照されています。

function curry(fn, ...args1) { 
 
    console.log("args1 = ", ...args1); 
 
    return (...args2) => { 
 
     console.log("args2 = ", ...args2); 
 
     fn(...args1, ...args2); 
 
    } 
 
} 
 

 
function myFunc(...allArgs) { 
 
    console.log(...allArgs); 
 
} 
 

 
const curried = curry(myFunc, 1,2,3); 
 

 
curried(4,5,6);

fnは(myFuncへの参照である)が呼び出されたときにあなたが見ることができるように、それはすべてのargs1args2を受けるので、1 2 3 4 5 6が表示されます。

+0

それは物事をうまくクリア! – user3253156

+0

うれしいことはうれしいです。 –

関連する問題