並べ替えて最初の項目を取得する以外に、カスタム比較関数を使用して配列の最小値を見つける方法はありますか?
2 に答える
6
reduce
fromを使用して作成できますList::Util
。
use List::Util qw/reduce/;
$min = reduce { $a < $b ? $a : $b } 1..10 # regular minimum
たとえば、文字列を比較する場合は、に置き換えます<
(le
ただしList::Util
、 exports もminstr
)。
于 2011-04-09T08:47:13.703 に答える
1
高階関数が必要なようですが、おそらく関数型言語に切り替えますか?
しかし、恐れる必要はありません。perl でシミュレートするか、簡単な解決策を選択できます。
my $min = shift @yourlist; # or $yourlist[0] if the list must remain intact
# assuming that your compare function is named "lower"
map { $min = $_ if lower($_, min) } @yourlist;
于 2011-04-09T08:48:31.213 に答える