Author: larry
Date: Fri Aug  8 07:59:12 2008
New Revision: 14573

Modified:
   doc/trunk/design/syn/S02.pod
   doc/trunk/design/syn/S06.pod
   doc/trunk/design/syn/S13.pod

Log:
clarify that &foo is a real function even when representing a multiple dispatch
s/q:code/quasi/


Modified: doc/trunk/design/syn/S02.pod
==============================================================================
--- doc/trunk/design/syn/S02.pod        (original)
+++ doc/trunk/design/syn/S02.pod        Fri Aug  8 07:59:12 2008
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall <[EMAIL PROTECTED]>
   Date: 10 Aug 2004
-  Last Modified: 5 Aug 2008
+  Last Modified: 8 Aug 2008
   Number: 2
-  Version: 134
+  Version: 135
 
 This document summarizes Apocalypse 2, which covers small-scale
 lexical items and typological issues.  (These Synopses also contain
@@ -1503,9 +1503,11 @@
 
 =item *
 
-With multiple dispatch, C<&foo> may not be sufficient to uniquely name a
-specific function.  In that case, the type may be refined by using a
-signature literal as a postfix operator:
+With multiple dispatch, C<&foo> may actually be the name of a set
+of candidate functions (which you can use as if it were an ordinary function).
+However, in that case C<&foo> by itself is not be sufficient to uniquely
+name a specific function.  To do that, the type may be refined by
+using a signature literal as a postfix operator:
 
     &foo:(Int,Num)
 
@@ -2455,7 +2457,7 @@
 
     macro qx { 'qq:x ' }          # equivalent to P5's qx//
     macro qTO { 'qq:x:w:to ' }    # qq:x:w:to//
-    macro quote:<❰ ❱> ($text) { q:code{ $text.quoteharder } }
+    macro quote:<❰ ❱> ($text) { quasi { $text.quoteharder } }
 
 All the uppercase adverbs are reserved for user-defined quotes.
 All Unicode delimiters above Latin-1 are reserved for user-defined quotes.

Modified: doc/trunk/design/syn/S06.pod
==============================================================================
--- doc/trunk/design/syn/S06.pod        (original)
+++ doc/trunk/design/syn/S06.pod        Fri Aug  8 07:59:12 2008
@@ -2490,10 +2490,10 @@
 =head2 Quasiquoting
 
 In aid of returning syntax tree, Perl provides a "quasiquoting"
-mechanism using the quote C<q:code>, followed by a block intended to
+mechanism using the quote C<quasi>, followed by a block intended to
 represent an AST:
 
-    return q:code { say "foo" };
+    return quasi { say "foo" };
 
 Modifiers to the C<:code> adverb can modify the operation:
 
@@ -2508,7 +2508,7 @@
 To make a symbol resolve to the (partially compiled) scope of the macro
 call, use the C<COMPILING::> pseudo-package:
 
-    macro moose () { q:code { $COMPILING::x } }
+    macro moose () { quasi { $COMPILING::x } }
 
     moose(); # macro-call-time error
     my $x;
@@ -2545,15 +2545,15 @@
 "unquoted" expression of either type within a quasiquote, use the
 quasiquote delimiter tripled, typically a bracketing quote of some sort:
 
-    return q:code { say $a + {{{ $ast }}} }
-    return q:code [ say $a + [[[ $ast ]]] ]
-    return q:code < say $a + <<< $ast >>> >
-    return q:code ( say $a + ((( $ast ))) )
+    return quasi { say $a + {{{ $ast }}} }
+    return quasi [ say $a + [[[ $ast ]]] ]
+    return quasi < say $a + <<< $ast >>> >
+    return quasi ( say $a + ((( $ast ))) )
 
 The delimiters don't have to be bracketing quotes, but the following
 is probably to be construed as Bad Style:
 
-    return q:code / say $a + /// $ast /// /
+    return quasi / say $a + /// $ast /// /
 
 (Note to implementors: this must not be implemented by finding
 the final closing delimiter and preprocessing, or we'll violate our
@@ -2588,17 +2588,17 @@
 the text determines subsequent expectations.)
 
 Quasiquotes default to hygienic lexical scoping, just like closures.
-The visibility of lexical variables is limited to the q:code expression
+The visibility of lexical variables is limited to the quasi expression
 by default.  A variable declaration can be made externally visible using 
 the C<COMPILING::> pseudo-package.  Individual variables can be made visible,
 or all top-level variable declarations can be exposed using the
-C<q:code(:COMPILING)> form.
+C<quasi :COMPILING> form.
 
 Both examples below will add C<$new_variable> to the lexical scope of
 the macro call:
 
-  q:code {  my $COMPILING::new_variable;   my $private_var; ... }
-  q:code(:COMPILING) { my $new_variable; { my $private_var; ... } }
+  quasi {  my $COMPILING::new_variable;   my $private_var; ... }
+  quasi :COMPILING { my $new_variable; { my $private_var; ... } }
 
 (Note that C<:COMPILING> has additional effects described in L<Macros>.) 
 

Modified: doc/trunk/design/syn/S13.pod
==============================================================================
--- doc/trunk/design/syn/S13.pod        (original)
+++ doc/trunk/design/syn/S13.pod        Fri Aug  8 07:59:12 2008
@@ -233,6 +233,4 @@
     $someclass = generate_class();
     $someclass($x);
 
-=cut
-
 =for vim:set expandtab sw=4:

Reply via email to