LoginSignup
1
0

More than 3 years have passed since last update.

カリー化関数と部分適用の使いどころを考える

Posted at

複数の引数を取る関数が、以下のように特定の変数だけ変わる偏った呼ばれ方をすることが想定される場合、

someFunc(hoge,piyo,1);
someFunc(hoge,piyo,2);
someFunc(hoge,piyo,3);
someFunc(hoge,piyo,4);
someFunc(hoge,piyo,5);

こんな感じにカリー化した関数があると、
部分適用した関数を利用してすっきりと書ける。

const curriedSomeFunc = (hoge,piyo) => (num) => {
  someFunc(hoge,piyo,num);  
}
const partiallyApplied = curriedSomeFunc(hoge,piyo);
partiallyApplied(1);
partiallyApplied(2);
partiallyApplied(3);
partiallyApplied(4);
partiallyApplied(5);

普通は通常の関数のみを外部に公開するけれども、
ユースケースが明らかに偏りそうな場合はカリー化関数も併せて出してあげると親切かもしれない。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0