第15回 map

さて、今まで「無名シリーズ」を見てきた訳ですが、
今回は、for以外に、配列全体を処理することができる map というものについて見ていきたいと思います。

まず、次のソースを実行してみましょう。

use strict;
use Data::Dumper;

my @array = 1..3;
my @plus_ones = map{ $_ + 1 } @array;

print Dumper \@plus_ones;

結果:

$VAR1 = [
          2,
          3,
          4
        ];

なにが起こったかおわかりでしょうか? Rubyにもmapがありますので、Ruby使いの方はもうわかっておられると思いますが、
@plus_ones に @arrayの全要素に対して、+1されたものが入りました。



この動きを絵で表現すると、こんな感じになります。
















それでは、for文とmapの違いはなんなのでしょうか?
それは、こちらに昔、書いてあります。

ビンゴ中西のほげほげmap をわかりやすく説明する



さて、mapの使い方を見てきたわけですが、
実は、今回のお話は、無名関数をもっと理解する為の伏線です。
それでは、また次回おあいしましょう〜