JavaScript 関数型プログラミングのpipeっぽいものをつくる
funcは関数の配列です。xに対して順番にfuncsの関数を適用します。
const pipe = funcs => x => funcs.reduce((acc, current) => current(acc), x)
使い方。
const addHoge = v => `${v} hoge`;
const addFoo = v => `${v} foo`;
const result = pipe([addHoge, addFoo])('tamibouz');
console.log(result); // tamibouz hoge foo
以下のような流れです。
まず、addHoge('tamibouz’)が実行される。
この結果を引数にして、addFoo('tamibouz hoge’) が実行される。
他の例として、+1してから*10する場合は
const addTen = v => v + 1;
const timesTen = v => v * 10;
const result = pipe([addTen, timesTen])(2);
console.log(result); // 30
最近のコメント