元記事
批判記事
高階関数を書いたら、中級者になれた気がした。を批判したら上級者になれた気がした。
休日ワイ
ワイ「おっ」
ワイ「ワイの記事に対して批判記事を書いてくださっている方がおるやんけ」
ワイ「ありがたいこっちゃ」
ワイ「いっちょ学ばせてもらおか!」
音読完了
ワイ「なるほどな〜」
ワイ「大変勉強になったわ」
ワイ「必読の記事やな!」
しかし気になることが
ワイ「ん?」
ワイ「なんやこのコード?」
const mapArray=callback=>
array=>{
for(let i=0;i<array.length;i++)
array[i]=callback(array[i]);
return array;
};
const doubleArray=mapArray(x=>x*2);
const tenMinusArray=mapArray(x=>x-10);
console.log(doubleArray([1,2,3,4]))
console.log(tenMinusArray([10,20,30,40]))
ワイ「JavaScriptの配列には元々mapメソッドがあるから」
console.log([1,2,3,4].map(x => x * 2))
console.log([10,20,30,40].map(x => x - 10))
ワイ「↑この2行だけで済むのに」
ワイ「なんで16行もコード書いてんねやろ?」
ワイ「mapArray
もdoubleArray
もtenMinusArray
も無駄ですやん」
ワイ「もしもワイがこんなコードを書いたなら・・・」
ワイ「うわ!10行以上も無駄なコード書いてもうた!」
ワイ「しかも高階関数の記事なのに、mapという高階関数を再発明してもうた!」
ワイ「って後悔してしまうなぁ・・・」
もしかして
ワイ「あっ!?」
ワイ「分かったで!」
ワイ「書いたことを後悔するような関数をわざと書いて」
ワイ「後悔関数と高階関数を掛けていらっしゃるんや!」
ワイ「いやー、ギャグセンスが高過ぎてかなわんわ!」
ワイ「ん、なになに?」
ワイ「このコードの説明が書いてあるで」
カリー化と部分適用を使ってさらに綺麗に美しく書くことができる。
ワイ「確かに綺麗や」
ワイ「美しいくらい見事なボケやわ!」
ワイ「全体的に学びも多いし、素晴らしい記事やし」
ワイ「さすが上級者や!」
〜おしまい〜