Ruby の map がなぜ好きになったか

inject 厨ではないのでそこは無視。

以前は

vars = []
arr.each { |e|
  vars.push( なんらかの処理 )
}

みたいな形で新しい配列を作るのが自分的には当たり前だった。でも今は多くの場合で

vars = arr.map { |e|
  なんらかの処理
}

で書くようになってきている。これがなぜ好きかということを説明していて、ブロックの中の変数が減って1好き、と言っていたんだけど、

なんか違う気がしてきた。

each はブロックの中と外で同じ変数をいじる、つまり副作用を基本にした処理なのがイヤなんだ。なるほど、そういう感覚になるんだな、これ。

……。副作用って言葉の使い方が合ってるかどうかは分かってません。ツッコミ待ってます。

ちなみに PHP の場合、メリットが分かっても array_map() はどうしても好きになれません。

  1. この場合は vars がなくなる 

More