Author: audreyt Date: Fri Aug 18 08:11:42 2006 New Revision: 11135 Modified: doc/trunk/design/syn/S06.pod doc/trunk/design/syn/S13.pod
Log: * S13 and S06: Remove the mentioning of "invocants" for multi dispatch; they are now simply "parameters", or "important parameters" for dispatch purposes. Modified: doc/trunk/design/syn/S06.pod ============================================================================== --- doc/trunk/design/syn/S06.pod (original) +++ doc/trunk/design/syn/S06.pod Fri Aug 18 08:11:42 2006 @@ -13,9 +13,9 @@ Maintainer: Larry Wall <[EMAIL PROTECTED]> Date: 21 Mar 2003 - Last Modified: 17 Aug 2006 + Last Modified: 18 Aug 2006 Number: 6 - Version: 50 + Version: 51 This document summarizes Apocalypse 6, which covers subroutines and the @@ -54,7 +54,7 @@ B<Multimethods> (keyword: C<multi>) are routines that can have multiple variants that share the same name, selected by arity, types, or some -other constraints. They may have multliple invocants. +other constraints. B<Prototypes> (keyword: C<proto>) specify the commonalities (such as parameter names, fixity, and associativity) shared by all multis @@ -498,10 +498,10 @@ # fall-back to set_name($obj, "Sam") $obj.set_name("Sam"); # same as the above -An invocant is the topic of the corresponding method or multi if that -formal parameter is declared with the name C<$_>. A method's first -invocant always has the alias C<self>. Other styles of self can be -declared with the C<self> pragma. +An invocant is the topic of the corresponding method if that formal +parameter is declared with the name C<$_>. A method's first invocant +always has the alias C<self>. Other styles of self can be declared +with the C<self> pragma. =head2 Longname parameters @@ -515,9 +515,9 @@ multi method set_name ($self: $name; $nick) {...} If the parameter list for a C<multi> contains no semicolon to delimit -the list of invocant parameters, then all positional parameters are -considered invocants. If it's a C<multi method> or C<multi submethod>, -an additional implicit unnamed C<self> invocant is prepended to the +the list of important parameters, then all positional parameters are +considered important. If it's a C<multi method> or C<multi submethod>, +an additional implicit unnamed C<self> invocant is added to the signature list unless the first parameter is explicitly marked with a colon. @@ -2148,7 +2148,7 @@ This special form should generally be restricted to named parameters. To curry a particular multimethod it may be necessary to specify the type -of one or more of its invocants: +for one or more of its parameters: &woof ::= &bark:(Dog).assuming :pitch<low>; &pine ::= &bark:(Tree).assuming :pitch<yes>; Modified: doc/trunk/design/syn/S13.pod ============================================================================== --- doc/trunk/design/syn/S13.pod (original) +++ doc/trunk/design/syn/S13.pod Fri Aug 18 08:11:42 2006 @@ -12,9 +12,9 @@ Maintainer: Larry Wall <[EMAIL PROTECTED]> Date: 2 Nov 2004 - Last Modified: 1 Apr 2006 + Last Modified: 18 Aug 2006 Number: 13 - Version: 4 + Version: 5 =head1 Overview @@ -53,11 +53,10 @@ rather than the built-in one. Putting the C<multi> into the C<*> namespace makes it show up in everyone's packages, but as long as no one else defines a version of C<uc> on C<TurkishStr>, there's no collision. -The types of the invocants are included in the "long name" of any C<multi> -sub or method. -If you want to overload string concatenation for Arabic strings -so you can handle various ligatures, you can say: +The types of the parameters are included in the I<longname> of any C<multi> +sub or method. So if you want to overload string concatenation for Arabic +strings so you can handle various ligatures, you can say: multi sub *infix:<~>(ArabicStr $s1, ArabicStr $s2) {...} multi sub *infix:<~>(Str $s1, ArabicStr $s2) {...}