From: Allison Randal <[EMAIL PROTECTED]>
   Date: Thu, 29 May 2008 02:22:37 +0200

   . . .

   Any of these alternatives can be marked as optional. Positional 
   parameters must come before all lookahead or named parameters. Lookahead 
   parameters must come before all named parameters. Positional, lookahead, 
   and named parameters must come before any slurpy parameters. And 
   required parameters must come before all optional parameters.

   Allison

These ordering constraints could be summarized as follows:

    positional < lookahead < named
    required < optional

I assume you meant "order by positionality, then by optionality";
otherwise, ordering a required named parameter vs. an optional
positional parameter would be tough.  That yields the following
declaration order (ignoring :slurpy):

    Pos? Named? Reqd? => Example
    yes  no     yes   => .param pmc A
    yes  no     no    => .param pmc B :optional
    yes  yes    yes   => .param pmc C :lookahead('c')
    yes  yes    no    => .param pmc D :optional :lookahead('d')
    no   yes    yes   => .param pmc E :named('e')
    no   yes    no    => .param pmc F :optional :named('f')

I can see why B has to be after A and before C, and I assume ":lookahead
before :named" makes the implementation easier, but I can't see the need
for any particular ordering of C vs. D, or E vs. F.  Am I missing
something?  Just curious,

                                        -- Bob Rogers
                                           http://rgrjr.dyndns.org/

Reply via email to