Front page | perl.perl6.language |
Postings from August 2006
[svn:perl6-synopsis] r11136 - doc/trunk/design/syn
From:
larry
Date:
August 18, 2006 09:00
Subject:
[svn:perl6-synopsis] r11136 - doc/trunk/design/syn
Message ID:
20060818160028.07373CB9BB@x12.develooper.com
Author: larry
Date: Fri Aug 18 09:00:28 2006
New Revision: 11136
Modified:
doc/trunk/design/syn/S04.pod
doc/trunk/design/syn/S06.pod
doc/trunk/design/syn/S12.pod
Log:
No such thing as a "first invocant" anymore.
Clarified NEXT semantics.
Modified: doc/trunk/design/syn/S04.pod
==============================================================================
--- doc/trunk/design/syn/S04.pod (original)
+++ doc/trunk/design/syn/S04.pod Fri Aug 18 09:00:28 2006
@@ -12,9 +12,9 @@
Maintainer: Larry Wall <larry@wall.org>
Date: 19 Aug 2004
- Last Modified: 17 Aug 2006
+ Last Modified: 18 Aug 2006
Number: 4
- Version: 36
+ Version: 37
This document summarizes Apocalypse 4, which covers the block and
statement syntax of Perl.
@@ -636,7 +636,7 @@
UNDO {...} at every unsuccessful block exit, part of LEAVE queue
FIRST {...}* at loop initialization time, before any ENTER
- NEXT {...} at loop continuation time, after any LEAVE
+ NEXT {...} at loop continuation time, before any LEAVE
LAST {...} at loop termination time, after any LEAVE
PRE {...} assert precondition at every block entry, before any
@@ -707,8 +707,14 @@
of C<LEAVE>, and for execution order are treated as part of the queue of
C<LEAVE> blocks.
-C<FIRST>, C<NEXT>, and C<LAST> are meaningful only within the lexical scope
-of a loop, and may occur only at the top level of such a loop block.
+C<FIRST>, C<NEXT>, and C<LAST> are meaningful only within the
+lexical scope of a loop, and may occur only at the top level of such
+a loop block. A C<NEXT> executes only if the end of the loop block is
+reached normally, or an explicit C<next> is executed. In distinction
+to C<LEAVE> blocks, a C<NEXT> block is not executed if the loop block
+is exited via any exception other than the control exception thrown
+by C<next>. In particular, a C<last> bypasses evaluation of C<NEXT>
+blocks.
[Note: the name C<FIRST> used to be associated with C<state>
declarations. Now it is associated only with loops. See the C<START>
Modified: doc/trunk/design/syn/S06.pod
==============================================================================
--- doc/trunk/design/syn/S06.pod (original)
+++ doc/trunk/design/syn/S06.pod Fri Aug 18 09:00:28 2006
@@ -499,7 +499,7 @@
$obj.set_name("Sam"); # same as the above
An invocant is the topic of the corresponding method if that formal
-parameter is declared with the name C<$_>. A method's first invocant
+parameter is declared with the name C<$_>. A method's invocant
always has the alias C<self>. Other styles of self can be declared
with the C<self> pragma.
Modified: doc/trunk/design/syn/S12.pod
==============================================================================
--- doc/trunk/design/syn/S12.pod (original)
+++ doc/trunk/design/syn/S12.pod Fri Aug 18 09:00:28 2006
@@ -12,9 +12,9 @@
Maintainer: Larry Wall <larry@wall.org>
Date: 27 Oct 2004
- Last Modified: 17 Aug 2006
+ Last Modified: 18 Aug 2006
Number: 12
- Version: 20
+ Version: 21
=head1 Overview
@@ -730,7 +730,7 @@
=head1 Multi dispatch
Multi submethods work just like multi subs except they are constrained
-to an exact type match on the first invocant.
+to an exact type match on the invocant.
Perl 6.0.0 is not required to support multiple dispatch on named parameters,
only on positional parameters. Note that most builtins will map known
@@ -742,7 +742,7 @@
Attributes are tied to a particular class definition, so a multi method
can only directly access the attributes of a class it's defined within
-when the first invocant is the "self" of that attribute.
+when the invocant is the "self" of that attribute.
However, it may call the private attribute accessors from a different
class if that other class has indicated that it trusts the class the
multi method is defined in:
-
[svn:perl6-synopsis] r11136 - doc/trunk/design/syn
by larry