Ruby の map がなぜ好きになったか
inject 厨ではないのでそこは無視。
以前は
vars = []
arr.each { |e|
vars.push( なんらかの処理 )
}
みたいな形で新しい配列を作るのが自分的には当たり前だった。でも今は多くの場合で
vars = arr.map { |e|
なんらかの処理
}
で書くようになってきている。これがなぜ好きかということを説明していて、ブロックの中の変数が減って1好き、と言っていたんだけど、
なんか違う気がしてきた。
each はブロックの中と外で同じ変数をいじる、つまり副作用を基本にした処理なのがイヤなんだ。なるほど、そういう感覚になるんだな、これ。
……。副作用って言葉の使い方が合ってるかどうかは分かってません。ツッコミ待ってます。
ちなみに PHP の場合、メリットが分かっても array_map() はどうしても好きになれません。
この場合は vars がなくなる ↩