flatMap
【JavaScript】flat と map があるのに flatMap は必要なのか?【Monad】 #TypeScript
JavaScriptの配列型にはflatMapというメソッドがある。flatMapは同じく配列のメソッドmapとflatを連続して適用したのと同じ処理を一つのメソッドで行うものである。
code:js
0, 10, 20.map(x => x, x + 1).flat(); // 0, 1, 10, 11, 20, 21
0, 10, 20.flatMap(x => x, x + 1); // 0, 1, 10, 11, 20, 21
これflatMap要るか?別に2回に分けて書けばよくないか?配列には他にもreverseやfilterやreduceなどたくさんのメソッドがあるのに、なぜflatとmapだけはそれらを組み合わせたflatMapという専用メソッドがあるのか?
それには理由がある。なぜならflatMapは関数型プログラミングにおいてとても重要で特別な関数だからである。
(中略)
なっとく!関数型プログラミング
https://youtu.be/C2w45qRc3aU?si=G4dUxB9AMamGEKa2
本稿では単に同じパターンがありますねという説明しかしてないが、Monadの意味論的な説明もしているので有益です
#Qiita
#ブックマーク