« 真か偽かは状況次第ってのは真理ではあるんだけど | メイン | 最近amazonに貢ぎすぎな件について »

2009年4月10日

コードブロック引数をオプションにできたら嬉しいんだけど

Perlに標準バンドルの配列操作のモジュールList::Utilにmax関数てのがある。List::Utilは便利なモジュールでPerlベストプラクティスでは積極利用を推奨していて、その辺の事はこの辺でも紹介されている。

で、なんとなくこんな使い方出来ないかなとか思ったけど無理でした。

use List::Util qw/max/;
...
my @lines = <$fh>;
#my $max = max {length} @lines; #こう書けたら超美しいと思うんだけど!
my $max = max map {length} @lines; #こう書くしかないのが残念

つまり、sortみたいにコードブロックを引数で持つ事もできて、渡さないときはデフォルトの動きをする、みたいな感じだったら良かったなぁ。

でも、考えてみると、Pure Perlでそれを実装する方法って無いのか。プロトタイプで&を指定するとコードブロックが省略できなくなっちゃうしな。ちょっと残念な感じ。XS使えば出来たりするのかなぁ。

投稿者 Songmu : 2009年4月10日 23:45

トラックバック

このエントリーのトラックバックURL:
http://www.songmu.jp/cgi-bin/mt/mt-tb.cgi/5