Author: lwall
Date: 2010-05-26 18:55:57 +0200 (Wed, 26 May 2010)
New Revision: 30811
Modified:
docs/Perl6/Spec/S05-regex.pod
Log:
[S05] attempt to clarify :nth and :x
Modified: docs/Perl6/Spec/S05-regex.pod
===================================================================
--- docs/Perl6/Spec/S05-regex.pod 2010-05-26 15:50:56 UTC (rev 30810)
+++ docs/Perl6/Spec/S05-regex.pod 2010-05-26 16:55:57 UTC (rev 30811)
@@ -16,8 +16,8 @@
Created: 24 Jun 2002
- Last Modified: 17 May 2010
- Version: 121
+ Last Modified: 26 May 2010
+ Version: 122
This document summarizes Apocalypse 5, which is about the new regex
syntax. We now try to call them I<regex> rather than "regular
@@ -461,12 +461,21 @@
m/(\d+)/ && m:c/(\d+)/ && s:c/(\d+)/@data[$0]/;
-Lists and junctions are allowed: C<:nth(1|2|3|5|8|13|21|34|55|89)>.
+The argument to C<:nth> is allowed to be a list of integers, but such a list
+should be monotically increasing. (Values which are less than or equal to the
previous
+value will be ignored.) So:
-So are closures: C<:nth({.is_fibonacci})>
+ :nth(2,4,6...*) # return only even matches
+ :nth(1,1,*+*...*) # match only at 1,2,3,5,8,13...
+
+This option is no longer required to support smartmatching. You can grep a
list
+of integers if you really need that capability:
+
+ :nth(grep *.oracle, 1..*)
+
If both C<:nth> and C<:x> are present, the matching routine looks for
submatches
-that are compatiable with C<:nth>. If the number of matches is compatible with
+that match with C<:nth>. If the number of post-nth matches is compatible with
the constraint in C<:x>, the whole match succeeds with the highest possible
number of submatches. The combination of C<:nth> and C<:x> typically only
makes sense if C<:nth> is not a single scalar.