SICP の2.2.3節あたりを読んでいたら、思いついたのでメモ。 いままで reduce で配列を作る方法がいまいち分かってなかったんだけど、以下のようにすればいい。 例えば、1から3までの数字について、元の数字とその数字を2乗した数の対の配列を作る場合はこう。 my @array = 1 .. 3; my $array_ref = reduce { [ @{$a}, [ $b, $b**2 ] ] }[], @array; print YAML::Dump($array_ref); 実行結果 --- - - 1 - 1 - - 2 - 4 - - 3 - 9 初期値に空の配列リファレンスを入れておいてやるのが(個人的な)ポイント。 Perl の(というより List::Util の)reduce は初期値を設定できなくて使いづらいと思ってたんだけど、ただ単に、配列の先頭に初期値を突っ込
![Perl の reduce (List::Util) で配列を作る方法 | フッ君の日常](https://cdn-ak-scissors.b.st-hatena.com/image/square/54eff32cbec67087a89d7c297b7df8ca5afe5c62/height=288;version=1;width=512/https%3A%2F%2Fimage.excite.co.jp%2Fjp%2FappleIcon%2Fapp%2Fblog%2Fapple-touch-icon.png)