Author: audreyt
Date: Sat Sep 30 20:16:38 2006
New Revision: 12533
Modified:
doc/trunk/design/syn/S02.pod
doc/trunk/design/syn/S09.pod
Log:
* S02: Re-introduce comprehension, this time not context-specific,
under the list() syntactic expression:
# list() comprehension that evaluates to (2,3,5)
1 < list(1,1,2,3,5,8) < 8
* Also bump S09's version.
Modified: doc/trunk/design/syn/S02.pod
==============================================================================
--- doc/trunk/design/syn/S02.pod (original)
+++ doc/trunk/design/syn/S02.pod Sat Sep 30 20:16:38 2006
@@ -12,9 +12,9 @@
Maintainer: Larry Wall <[EMAIL PROTECTED]>
Date: 10 Aug 2004
- Last Modified: 26 Sept 2006
+ Last Modified: 1 Oct 2006
Number: 2
- Version: 73
+ Version: 74
This document summarizes Apocalypse 2, which covers small-scale
lexical items and typological issues. (These Synopses also contain
@@ -2148,6 +2148,32 @@
=item *
+When evaluating chained operators, if a C<list()> occurs anywhere in that
+chain, the chain will be transformed first into a C<grep>. That is,
+
+ for 0 <= list(@x) < all(@y) {...}
+
+becomes
+
+ for @x.grep:{ 0 <= $_ < all(@y) } {...}
+
+Because of this, the original ordering C<@x> is guaranteed to be
+preserved in the returned list, and duplicate elements in C<@x> are
+preserved as well. In particular,
+
+ @result = list(@x) ~~ {...};
+
+is equivalent to
+
+ @result = @x.grep:{...};
+
+However, this I<list() comprehension> is strictly a syntactic transformation,
+so a list computed any other way will not triger the rewrite:
+
+ @result = (@x = list(@y)) ~~ {...}; # not a comprehension
+
+=item *
+
The C<|> prefix operator may be used to force "capture" context on its
argument and I<also> defeat any scalar argument checking imposed by
subroutine signature declarations. Any resulting list arguments are
Modified: doc/trunk/design/syn/S09.pod
==============================================================================
--- doc/trunk/design/syn/S09.pod (original)
+++ doc/trunk/design/syn/S09.pod Sat Sep 30 20:16:38 2006
@@ -12,9 +12,9 @@
Maintainer: Larry Wall <[EMAIL PROTECTED]>
Date: 13 Sep 2004
- Last Modified: 13 Sept 2006
+ Last Modified: 1 Oct 2006
Number: 9
- Version: 14
+ Version: 15
=head1 Overview