[perldocjp-cvs 2197] CVS update: docs/modules/Scalar-List-Utils-1.21/List

Back to archive index
argra****@users***** argra****@users*****
2019年 11月 28日 (木) 01:10:05 JST


Date:	Thursday November 28, 2019 @ 01:10
Author:	argrath

Update of /cvsroot/perldocjp/docs/modules/Scalar-List-Utils-1.21/List
In directory sf-cvs:/tmp/cvs-serv40257/modules/Scalar-List-Utils-1.21/List

Added Files:
	Util.pod 
Log Message:
Scalar-List-Utils-1.21
===================================================================
File: Util.pod         	Status: Up-to-date

   Working revision:	1.1	Wed Nov 27 16:10:05 2019
   Repository revision:	1.1	/cvsroot/perldocjp/docs/modules/Scalar-List-Utils-1.21/List/Util.pod,v

   Existing Tags:
	No Tags Exist

-------------- next part --------------
Index: docs/modules/Scalar-List-Utils-1.21/List/Util.pod
diff -u /dev/null docs/modules/Scalar-List-Utils-1.21/List/Util.pod:1.1
--- /dev/null	Thu Nov 28 01:10:05 2019
+++ docs/modules/Scalar-List-Utils-1.21/List/Util.pod	Thu Nov 28 01:10:05 2019
@@ -0,0 +1,366 @@
+
+=head1 NAME
+
+=begin original
+
+List::Util - A selection of general-utility list subroutines
+
+=end original
+
+List::Util - °ìÈÌŪ¤ËÍ­ÍѤʥꥹ¥È¥µ¥Ö¥ë¡¼¥Á¥ó½¸
+
+=head1 SYNOPSIS
+
+    use List::Util qw(first max maxstr min minstr reduce shuffle sum);
+
+=head1 DESCRIPTION
+
+=begin original
+
+C<List::Util> contains a selection of subroutines that people have
+expressed would be nice to have in the perl core, but the usage would
+not really be high enough to warrant the use of a keyword, and the size
+so small such that being individual extensions would be wasteful.
+
+=end original
+
+C<List::Util> ¤Ï¡¢¿Í¡¹¤¬ perl ¥³¥¢¤Ë¤¢¤ì¤Ð¤¤¤¤¤Î¤Ë¤ÈɽÌÀ¤¹¤ë¤±¤ì¤É¤â¡¢
+¥­¡¼¥ï¡¼¥É¤Î»ÈÍѤòÊݾڤ·¡¢ÆÈΩ¤·¤¿³ÈÄ¥¤Ë¤¹¤ë¤Î¤¬ÌµÂ̤ʤۤɥµ¥¤¥º¤¬¾®¤µ¤¤¡¢¤È
+¤¤¤¦¤Û¤É¼ÂºÝ¤Î»ÈÍÑÉÑÅÙ¤¬¹â¤¯¤Ê¤¤¥µ¥Ö¥ë¡¼¥Á¥ó½¸¤Ç¤¹¡£
+
+=begin original
+
+By default C<List::Util> does not export any subroutines. The
+subroutines defined are
+
+=end original
+
+¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï C<List::Util> ¤Ï²¿¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤â¥¨¥¯¥¹¥Ý¡¼¥È¤·¤Þ¤»¤ó¡£
+ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï:
+
+=over 4
+
+=item first BLOCK LIST
+
+=begin original
+
+Similar to C<grep> in that it evaluates BLOCK setting C<$_> to each element
+of LIST in turn. C<first> returns the first element where the result from
+BLOCK is a true value. If BLOCK never returns true or LIST was empty then
+C<undef> is returned.
+
+=end original
+
+LIST ¤Î¤½¤ì¤¾¤ì¤ÎÍ×ÁǤò½ç¤Ë C<$_> ÀßÄꤷ¤Æ BLOCK ¤òɾ²Á¤¹¤ë¤È¤¤¤¦°ÕÌ£¤Ç
+C<grep> ¤È»÷¤Æ¤¤¤Þ¤¹¡£
+C<first> ¤Ï¡¢BLOCK ¤Î·ë²Ì¤¬¿¿¤ÎÃͤˤʤ俺ǽé¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£
+BLOCK ¤¬¿¿¤òÊÖ¤µ¤Ê¤«¤Ã¤¿¤ê¡¢LIST ¤¬¶õ¤Î¾ì¹ç¤Ï¡¢C<undef> ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
+
+    $foo = first { defined($_) } @list    # first defined value in @list
+    $foo = first { $_ > $value } @list    # first value in @list which
+                                          # is greater than $value
+
+=begin original
+
+This function could be implemented using C<reduce> like this
+
+=end original
+
+¤³¤Î´Ø¿ô¤Ï¡¢C<reduce> ¤ò»È¤Ã¤Æ¼¡¤Î¤è¤¦¤Ë¤·¤Æ¼ÂÁõ¤Ç¤­¤Þ¤¹:
+
+    $foo = reduce { defined($a) ? $a : wanted($b) ? $b : undef } undef, @list
+
+=begin original
+
+for example wanted() could be defined() which would return the first
+defined value in @list
+
+=end original
+
+Î㤨¤Ð¡¢wanted() ¤¬ defined() ¤Ê¤é @list ¤ÎÃæ¤ÇºÇ½é¤ÎÄêµÁ¤µ¤ì¤¿ÃͤòÊÖ¤·¤Þ¤¹¡£
+
+=item max LIST
+
+=begin original
+
+Returns the entry in the list with the highest numerical value. If the
+list is empty then C<undef> is returned.
+
+=end original
+
+¥ê¥¹¥È¤Î¥¨¥ó¥È¥ê¤ÎÃæ¤ÇºÇÂç¤Î¿ôÃͤòÊÖ¤·¤Þ¤¹¡£
+¥ê¥¹¥È¤¬¶õ¤Î¾ì¹ç¡¢C<undef> ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
+
+    $foo = max 1..10                # 10
+    $foo = max 3,9,12               # 12
+    $foo = max @bar, @baz           # whatever
+
+=begin original
+
+This function could be implemented using C<reduce> like this
+
+=end original
+
+¤³¤Î´Ø¿ô¤Ï¡¢C<reduce> ¤ò»È¤Ã¤Æ¼¡¤Î¤è¤¦¤Ë¤·¤Æ¼ÂÁõ¤Ç¤­¤Þ¤¹:
+
+    $foo = reduce { $a > $b ? $a : $b } 1..10
+
+=item maxstr LIST
+
+=begin original
+
+Similar to C<max>, but treats all the entries in the list as strings
+and returns the highest string as defined by the C<gt> operator.
+If the list is empty then C<undef> is returned.
+
+=end original
+
+C<max> ¤ÈƱÍͤǤ¹¤¬¡¢¥ê¥¹¥È¤ÎÃæ¤ÎÁ´¤Æ¤Î¥¨¥ó¥È¥ê¤òʸ»úÎó¤È¤·¤Æ°·¤¤¡¢
+C<gt> ±é»»»Ò¤ÇÄêµÁ¤µ¤ì¤ëºÇÂç¤Îʸ»úÎó¤òÊÖ¤·¤Þ¤¹¡£
+¥ê¥¹¥È¤¬¶õ¤Î¾ì¹ç¡¢C<undef> ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
+
+    $foo = maxstr 'A'..'Z'          # 'Z'
+    $foo = maxstr "hello","world"   # "world"
+    $foo = maxstr @bar, @baz        # whatever
+
+=begin original
+
+This function could be implemented using C<reduce> like this
+
+=end original
+
+¤³¤Î´Ø¿ô¤Ï¡¢C<reduce> ¤ò»È¤Ã¤Æ¼¡¤Î¤è¤¦¤Ë¤·¤Æ¼ÂÁõ¤Ç¤­¤Þ¤¹:
+
+    $foo = reduce { $a gt $b ? $a : $b } 'A'..'Z'
+
+=item min LIST
+
+=begin original
+
+Similar to C<max> but returns the entry in the list with the lowest
+numerical value. If the list is empty then C<undef> is returned.
+
+=end original
+
+C<max> ¤ÈƱÍͤǤ¹¤¬¡¢¥ê¥¹¥È¤Î¥¨¥ó¥È¥ê¤ÎÃæ¤ÇºÇ¾®¤Î¿ôÃͤòÊÖ¤·¤Þ¤¹¡£
+¥ê¥¹¥È¤¬¶õ¤Î¾ì¹ç¡¢C<undef> ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
+
+    $foo = min 1..10                # 1
+    $foo = min 3,9,12               # 3
+    $foo = min @bar, @baz           # whatever
+
+=begin original
+
+This function could be implemented using C<reduce> like this
+
+=end original
+
+¤³¤Î´Ø¿ô¤Ï¡¢C<reduce> ¤ò»È¤Ã¤Æ¼¡¤Î¤è¤¦¤Ë¤·¤Æ¼ÂÁõ¤Ç¤­¤Þ¤¹:
+
+    $foo = reduce { $a < $b ? $a : $b } 1..10
+
+=item minstr LIST
+
+=begin original
+
+Similar to C<min>, but treats all the entries in the list as strings
+and returns the lowest string as defined by the C<lt> operator.
+If the list is empty then C<undef> is returned.
+
+=end original
+
+C<min> ¤ÈƱÍͤǤ¹¤¬¡¢¥ê¥¹¥È¤ÎÃæ¤ÎÁ´¤Æ¤Î¥¨¥ó¥È¥ê¤òʸ»úÎó¤È¤·¤Æ°·¤¤¡¢
+C<lt> ±é»»»Ò¤ÇÄêµÁ¤µ¤ì¤ëºÇ¾®¤Îʸ»úÎó¤òÊÖ¤·¤Þ¤¹¡£
+¥ê¥¹¥È¤¬¶õ¤Î¾ì¹ç¡¢C<undef> ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
+
+    $foo = minstr 'A'..'Z'          # 'A'
+    $foo = minstr "hello","world"   # "hello"
+    $foo = minstr @bar, @baz        # whatever
+
+=begin original
+
+This function could be implemented using C<reduce> like this
+
+=end original
+
+¤³¤Î´Ø¿ô¤Ï¡¢C<reduce> ¤ò»È¤Ã¤Æ¼¡¤Î¤è¤¦¤Ë¤·¤Æ¼ÂÁõ¤Ç¤­¤Þ¤¹:
+
+    $foo = reduce { $a lt $b ? $a : $b } 'A'..'Z'
+
+=item reduce BLOCK LIST
+
+=begin original
+
+Reduces LIST by calling BLOCK, in a scalar context, multiple times,
+setting C<$a> and C<$b> each time. The first call will be with C<$a>
+and C<$b> set to the first two elements of the list, subsequent
+calls will be done by setting C<$a> to the result of the previous
+call and C<$b> to the next element in the list.
+
+=end original
+
+BLOCK ¤ò¥¹¥«¥é¥³¥ó¥Æ¥­¥¹¥È¤ÇÊ£¿ô²ó¡¢Ëè²ó C<$a> ¤È C<$b> ¤òÀßÄꤷ¤Æ
+¸Æ¤Ó½Ð¤¹¤³¤È¤Ç LIST ¤ò½Ì¾®(reduce)¤·¤Þ¤¹¡£
+ºÇ½é¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï C<$a> ¤È C<$b> ¤Ï¥ê¥¹¥È¤ÎºÇ½é¤ÎÆó¤Ä¤ÎÍ×ÁǤòÀßÄꤷ¡¢
+°ú¤­Â³¤¯¸Æ¤Ó½Ð¤·¤Ç¤Ï C<$a> ¤ËÁ°²ó¤Î¸Æ¤Ó½Ð¤·¤Î·ë²Ì¤ò¡¢
+C<$b> ¤Ë¥ê¥¹¥È¤Î¼¡¤ÎÍ×ÁǤòÀßÄꤷ¤Æ¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
+
+=begin original
+
+Returns the result of the last call to BLOCK. If LIST is empty then
+C<undef> is returned. If LIST only contains one element then that
+element is returned and BLOCK is not executed.
+
+=end original
+
+BLOCK ¤ÎºÇ¸å¤Î¸Æ¤Ó½Ð¤·¤Î·ë²Ì¤òÊÖ¤·¤Þ¤¹¡£
+LIST ¤¬¶õ¤Î¾ì¹ç¡¢C<undef> ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
+LIST ¤¬ 1 Í×ÁǤ·¤«»ý¤¿¤Ê¤¤¾ì¹ç¡¢¤½¤ÎÍ×ÁǤ¬ÊÖ¤µ¤ì¡¢BLOCK ¤Ï¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£
+
+    $foo = reduce { $a < $b ? $a : $b } 1..10       # min
+    $foo = reduce { $a lt $b ? $a : $b } 'aa'..'zz' # minstr
+    $foo = reduce { $a + $b } 1 .. 10               # sum
+    $foo = reduce { $a . $b } @bar                  # concat
+
+=begin original
+
+If your algorithm requires that C<reduce> produce an identity value, then
+make sure that you always pass that identity value as the first argument to prevent
+C<undef> being returned
+
+=end original
+
+C<reduce> ¤¬Ã±°Ì¸µ¤ò½ÐÎϤ¹¤ë¤³¤È¤¬¤¢¤Ê¤¿¤Î¥¢¥ë¥´¥ê¥º¥à¤Ë¤È¤Ã¤ÆɬÍפʾì¹ç¡¢
+C<undef> ¤òÊÖ¤¹¤Î¤òÈò¤±¤ë¤¿¤á¤Ë¾ï¤ËºÇ½é¤ÎÍ×ÁǤȤ·¤Æñ°Ì¸µ¤ò
+ÅϤ¹¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤:
+
+  $foo = reduce { $a + $b } 0, @values;             # sum with 0 identity value
+
+=item shuffle LIST
+
+=begin original
+
+Returns the elements of LIST in a random order
+
+=end original
+
+LIST ¤ÎÍ×ÁǤò¥é¥ó¥À¥à¤Ê½ç½ø¤ÇÊÖ¤·¤Þ¤¹:
+
+    @cards = shuffle 0..51      # 0..51 in a random order
+
+=item sum LIST
+
+=begin original
+
+Returns the sum of all the elements in LIST. If LIST is empty then
+C<undef> is returned.
+
+=end original
+
+LIST ¤ÎÁ´¤Æ¤ÎÍ×ÁǤιç·×¤òÊÖ¤·¤Þ¤¹¡£
+LIST ¤¬¶õ¤Î¾ì¹ç¡¢C<undef> ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
+
+    $foo = sum 1..10                # 55
+    $foo = sum 3,9,12               # 24
+    $foo = sum @bar, @baz           # whatever
+
+=begin original
+
+This function could be implemented using C<reduce> like this
+
+=end original
+
+¤³¤Î´Ø¿ô¤Ï¡¢C<reduce> ¤ò»È¤Ã¤Æ¼¡¤Î¤è¤¦¤Ë¤·¤Æ¼ÂÁõ¤Ç¤­¤Þ¤¹:
+
+    $foo = reduce { $a + $b } 1..10
+
+=begin original
+
+If your algorithm requires that C<sum> produce an identity of 0, then
+make sure that you always pass C<0> as the first argument to prevent
+C<undef> being returned
+
+=end original
+
+C<sum> ¤¬Ã±°Ì¸µ¤Î 0 ¤ò½ÐÎϤ¹¤ë¤³¤È¤¬¤¢¤Ê¤¿¤Î¥¢¥ë¥´¥ê¥º¥à¤Ë¤È¤Ã¤Æ
+ɬÍפʾì¹ç¡¢
+C<undef> ¤òÊÖ¤¹¤Î¤òÈò¤±¤ë¤¿¤á¤Ë¾ï¤ËºÇ½é¤ÎÍ×ÁǤȤ·¤Æ C<0> ¤ò
+ÅϤ¹¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤:
+
+  $foo = sum 0, @values;
+
+=back
+
+=head1 KNOWN BUGS
+
+(´ûÃΤΥХ°)
+
+=begin original
+
+With perl versions prior to 5.005 there are some cases where reduce
+will return an incorrect result. This will show up as test 7 of
+reduce.t failing.
+
+=end original
+
+¥Ð¡¼¥¸¥ç¥ó 5.005 ¤è¤êÁ°¤Î perl ¤Ç¤Ï¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï reduce ¤¬
+´Ö°ã¤Ã¤¿·ë²Ì¤òÊÖ¤¹¤³¤È¤¬¤¢¤ê¤Þ¤·¤¿¡£
+¤³¤ì¤Ï reduce.t ¤Î¥Æ¥¹¥È 7 ¤Î¼ºÇԤȤ·¤Æ¸½¤ì¤Þ¤¹¡£
+
+=head1 SUGGESTED ADDITIONS
+
+(Äó°Æ¤µ¤ì¤¿³ÈÄ¥)
+
+=begin original
+
+The following are additions that have been requested, but I have been reluctant
+to add due to them being very simple to implement in perl
+
+=end original
+
+°Ê²¼¤Î¤â¤Î¤ÏÍ×˾¤µ¤ì¤¿³ÈÄ¥¤Ç¤¹¤¬¡¢»ä¤ÏÄɲ乤ë¤Î¤Ëµ¤¾è¤ê¤·¤Þ¤»¤ó;
+perl ¤Ç¼ÂÁõ¤¹¤ë¤Î¤¬¤È¤Æ¤â´Êñ¤À¤«¤é¤Ç¤¹:
+
+  # One argument is true
+
+  sub any { $_ && return 1 for @_; 0 }
+
+  # All arguments are true
+
+  sub all { $_ || return 0 for @_; 1 }
+
+  # All arguments are false
+
+  sub none { $_ && return 0 for @_; 1 }
+
+  # One argument is false
+
+  sub notall { $_ || return 1 for @_; 0 }
+
+  # How many elements are true
+
+  sub true { scalar grep { $_ } @_ }
+
+  # How many elements are false
+
+  sub false { scalar grep { !$_ } @_ }
+
+=head1 SEE ALSO
+
+L<Scalar::Util>, L<List::MoreUtils>
+
+=head1 COPYRIGHT
+
+Copyright (c) 1997-2007 Graham Barr <gbarr****@pobox*****>. All rights reserved.
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=begin meta
+
+Translate: Kentaro Shirakata <argra****@ub32*****>
+Status: completed
+
+=end meta
+
+=cut
+


perldocjp-cvs メーリングリストの案内
Back to archive index