minっぽい関数の拡張系
- 入力としてundefあるいは値を複数受け取り
- 結果として値の最小値(あるいは値が全てundefの場合はundef)を返す
という処理をどう書くのがいいか? 自分が思いつくのは以下のコードだけど、もっといい書き方あるかなぁ(簡潔明快であることが望ましい)。
my $min_or_undef = List::Util::min( defined($a) ? ($a) : (), defined($b) ? ($b) : (), );
20:03追記: IRCという名の集合値によって、
my $min_or_undef = List::Util::min(grep { defined $_ } ($a, $b));
のがわかりやすいだろうということになった。kan++ tokuhirom++