Re: [svn:perl6-synopsis] r7784 - doc/trunk/design/syn

2006-02-23 Thread Larry Wall
On Thu, Feb 23, 2006 at 06:08:40AM -0800, Paul Hodges wrote:
: 
: 
: --- [EMAIL PROTECTED] wrote:
: > . . .
: > -Such an "eigenmethod" is delegated to C<.meta> just as method like
: > . . .
: > +Such an I is always delegated to C<.meta> just as
: 
: changing "eigenmethod" to I should also change "an"
: to "a":
: 
:  +Such a I is always delegated to C<.meta> just as
:^
: 
: Small thing, but someone will mention it eventually anyway.

Fixed, thanks.

Larry


Re: [svn:perl6-synopsis] r7784 - doc/trunk/design/syn

2006-02-23 Thread Paul Hodges


--- [EMAIL PROTECTED] wrote:
> . . .
> -Such an "eigenmethod" is delegated to C<.meta> just as method like
> . . .
> +Such an I is always delegated to C<.meta> just as

changing "eigenmethod" to I should also change "an"
to "a":

 +Such a I is always delegated to C<.meta> just as
   ^

Small thing, but someone will mention it eventually anyway.

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


[svn:perl6-synopsis] r7784 - doc/trunk/design/syn

2006-02-23 Thread autrijus
Author: autrijus
Date: Wed Feb 22 11:01:51 2006
New Revision: 7784

Modified:
   doc/trunk/design/syn/S12.pod
Log:
* S12: replace the inaccurate use "eigenclass" with "metaclass"
* Also specify "$.foo" and "$.foo(...)" forms as contextful
  shorthands of method calls on self.

Modified: doc/trunk/design/syn/S12.pod
==
--- doc/trunk/design/syn/S12.pod(original)
+++ doc/trunk/design/syn/S12.podWed Feb 22 11:01:51 2006
@@ -303,16 +303,16 @@ pass it a prototype object such as "Dog"
 object is, as long as the method body doesn't try to access any information 
that
 is undefined in the current instance.
 
-Alternately, you can associate a class method with the current eigenclass 
instance,
+Alternately, you can associate a class method with the current metaclass 
instance,
 which as a singleton object knows your package, and can function as a more 
traditional
 "class" method:
 
 our $count;
 method ^count { return $count }
 
-Such an "eigenmethod" is delegated to C<.meta> just as method like .does are,
-so it's possible to call this as C or C<$dog.count>.  However,
-best practice is probably to call such a class method as C
+Such an I is always delegated to C<.meta> just as method like
+C<.does> are, so it's possible to call this as C or C<$dog.count>.
+However, best practice is probably to call such a class method as C
 or C<$dog.^count> to make it clear that it's in its own namespace separate
 from ordinary methods, and so that your class method cannot be accidentally
 overridden by an ordinary method in a subclass--presuming you don't want to
@@ -377,12 +377,25 @@ directly to the attribute values.  Outsi
 only access to attributes is through the accessors since an object has
 to be specified.  The dot form of attribute variables may be used in
 derived classes because the dot form always implies a virtual accessor
-call.  Every "dot" declaration also declares a corresponding private
-"exclamation" storage location, and the exclamation form may be used
+call.  Every I declaration also declares a corresponding private
+I storage location, and the exclamation form may be used
 only in the actual class, not in derived classes.  Reference to the
 internal storage location via C<$!foo> should generally be restricted
 to submethods.  Ordinary methods should stick to the C<$.foo> form.
 
+Because C<$.foo>, C<@.foo>, C<%.foo>, C<&.foo> are just shorthands of
+C with different contexts, the class does not need to declare C as a property -- a C declaration can work just as well.
+
+The dot form can take an argument list as well.  These are all equivalent:
+
+self.foo(1,2,3);# a regular method call
+self.foo.(1,2,3);   # ditto
+$.foo(1,2,3);   # calls self.foo under $ context
+$.foo.(1,2,3);  # ditto
+@.foo(1,2,3);   # calls self.foo under @ context
+@.foo.(1,2,3);  # ditto
+
 Pseudo-assignment to an attribute declaration specifies the default
 value.  The value on the right is evaluated at class composition
 time, that is, while the class is being compiled and the class