ROUTE 3390

備忘録的な用途で書いていますが、どなたかの役に立つ事があれば嬉しいです。

List::MoreUtilsのany、all、none、notall について

List::MoreUtils
http://search.cpan.org/~adamk/List-MoreUtils-0.30/lib/List/MoreUtils.pm

any、all、none、notallの4つについて、使う時に用途がゴチャゴチャしちゃうので備忘録

▼ソースを見るとこうなってる。

sub any (&@) {
   my $f = shift;
   foreach ( @_ ) {
       return YES if $f->();
   }
   return NO;
}

⇒どれか1つでもTRUEが存在すればYESを返す。全てFALSEならNOを返す。

sub all (&@) {
   my $f = shift;
   foreach ( @_ ) {
       return NO unless $f->();
   }
   return YES;
}

⇒全てTRUEであればYESを返す。どれか1つでもFALSEがあればNOを返す。

sub none (&@) {
   my $f = shift;
   foreach ( @_ ) {
       return NO if $f->();
   }
   return YES;
}

⇒どれか1つでもTRUEが存在すればNOを返す。全てFALSEならYESを返す。

sub notall (&@) {
   my $f = shift;
   foreach ( @_ ) {
       return YES unless $f->();
   }
   return NO;
}

⇒全てTRUEならFALSEを返す。どれか1つでもFALSEが存在すればYESを返す。


もしList::MoreUtilsを利用出来ない環境であれば、直接これを書いてしまっても良いかも、