Author: larry
Date: Thu May 11 15:39:08 2006
New Revision: 9204

Modified:
   doc/trunk/design/syn/S03.pod
   doc/trunk/design/syn/S05.pod
   doc/trunk/design/syn/S09.pod

Log:
Typos.
Tightened up prefix:<*> to match only before sigils and brackets,
so that *foo now always means GLOBAL::foo, and 0..*:by(2) works.


Modified: doc/trunk/design/syn/S03.pod
==============================================================================
--- doc/trunk/design/syn/S03.pod        (original)
+++ doc/trunk/design/syn/S03.pod        Thu May 11 15:39:08 2006
@@ -14,7 +14,7 @@
   Date: 8 Mar 2004
   Last Modified: 11 May 2006
   Number: 3
-  Version: 28
+  Version: 29
 
 =head1 Changes to existing operators
 
@@ -360,7 +360,7 @@
 thing parses as a single token.
 
 A reduction operator really is a list operator, and is invoked as one.
-Hence, you maybe implement a reduction operator in one of two ways.  Either
+Hence, you can implement a reduction operator in one of two ways.  Either
 you can write an explicit list operator:
 
     proto prefix:<[+]> ([EMAIL PROTECTED]) {
@@ -674,7 +674,7 @@
 
 Since typeglobs are being removed, unary C<*> may now serve as an
 interpolator, by casting its single operand to a C<Capture> object
-and insert it into the current argument list.
+and inserting it into the current argument list.
 
 It can be used to interpolate an C<Array> or C<Hash> into the current
 call, as positional and named arguments respectively.
@@ -737,6 +737,26 @@
 
 You may use either of them on a scalar iterator to force it to iterate.
 
+The C<*> operator is recognized only if the next character is a sigil
+or an opening bracket, In front of an alphabetic character C<*> will
+always be taken to mean C<GLOBAL::>.  Otherwise it will be assumed
+the C<*> has no argument.  See next section.
+
+To interpolate a function's return value, therefore, you must say one
+of these:
+
+    push *(func())
+    push *[func()]
+    push *&func()
+
+because
+
+    push *func()
+
+means
+
+    push GLOBAL::func()
+
 =item * The "Whatever" operator
 
 If the C<*> prefix operator has I<no> argument, it captures the notion
@@ -891,7 +911,7 @@
 Perl 6 has 22 precedence levels (which is fewer than Perl 5):
 
     terms               42 "eek" $x /abc/ (1+2) a(1) :by(2) .meth listop
-    method postfix      . .+ .? .* .() .[] .{} .:: .«» .=
+    method postfix      . .+ .? .* .() .[] .{} .«» .:: .=
     autoincrement       ++ --
     exponentiation      **
     symbolic unary      ! + - ~ ? $ @ % & * ** +^ ~^ ?^ \ ^ =

Modified: doc/trunk/design/syn/S05.pod
==============================================================================
--- doc/trunk/design/syn/S05.pod        (original)
+++ doc/trunk/design/syn/S05.pod        Thu May 11 15:39:08 2006
@@ -152,14 +152,12 @@
 =item *
 
 The new C<:s> (C<:sigspace>) modifier causes whitespace sequences
-to be considered "significant".  That is, they are replaced by a
-whitespace matching rule, C<< <?ws> >>.
-
-Anyway,
+to be considered "significant"; they are replaced by a whitespace
+matching rule, C<< <?ws> >>.  That is,
 
      m:s/ next cmd =   <condition>/
 
-Same as:
+is the same as:
 
      m/ <?ws> next <?ws> cmd <?ws> = <?ws> <condition>/
 

Modified: doc/trunk/design/syn/S09.pod
==============================================================================
--- doc/trunk/design/syn/S09.pod        (original)
+++ doc/trunk/design/syn/S09.pod        Thu May 11 15:39:08 2006
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall <[EMAIL PROTECTED]>
   Date: 13 Sep 2004
-  Last Modified: 21 Apr 2006
+  Last Modified: 11 May 2006
   Number: 9
-  Version: 9
+  Version: 10
 
 =head1 Overview
 
@@ -308,7 +308,7 @@
 just like scalars -- the main caveat is that you have to use
 binding rather than assignment to set one without copying:
 
-    @b := @a[0..(*):by(2)]
+    @b := @a[0..*:by(2)]
 
 With PDLs in particular, this might alias each of the individual
 elements rather than the array as a whole.  So modifications to @b
@@ -340,7 +340,7 @@
 semicolon-separated list of slice specifiers, also known as a multislice.
 A three-dimensional slice might look like this:
 
-    @x[0..10; 1,0; 1..(*):by(2)]
+    @x[0..10; 1,0; 1..*:by(2)]
 
 It is up to the implementation of C<@x> to decide how aggressively
 or lazily this subscript is evaluated, and whether the slice entails
@@ -412,9 +412,9 @@
 
     @nums[$min..$max:by(3)]
     @nums[$min..$max]
-    @nums[$min..(*):by(3)]
-    @nums[1..(*):by(2)]                # the odds
-    @nums[0..(*):by(2)]                # the evens
+    @nums[$min..*:by(3)]
+    @nums[1..*:by(2)]          # the odds
+    @nums[0..*:by(2)]          # the evens
 
 That's all just the standard Perl 6 notation for ranges.  Additional
 syntactic relief is always available as long as it's predeclared

Reply via email to