#!/usr/bin/perl use strict; use warnings; my @items = (1, 2, 4, 8, 16, 32); my $str = join ',', @items; print $str, "\n"; #!/usr/bin/perl use strict; use warnings; my @items = (1, 22, 333, 4444, 55555); my $str = join "\n", @items; print $str, "\n";
2007年05月28日03:30 カテゴリ一日一行野郎 Code Snippets - reduce(l|r)を実装汁! FizzBuzzにももうええかげん食傷してきたので、次のネタをないかと思ったら、yuguiさんがtwitterで私を登録したので、ごぶさた〜と思ってblogを見に行って格好の素材を(再)発見したという前回までのあらすじ。 inject + Symbol#to_proc = fold @ 2007年05月 @ ratio - rational - irrational @ IDM (1..10).inject(&:*) => 3628800 うーむ。素晴らしい。 reduce(l|r) というわけで問題。reducelとreducerを実装せよ。制限時間はあわせて10分。ただし、reducelとreducerは、Haskellにおいて次の挙動を示すものとする。 *Main
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 は初期値を設定できなくて使いづらいと思ってたんだけど、ただ単に、配列の先頭に初期値を突っ込
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く