On Wed, Apr 1, 2009 at 5:07 AM, Daniel Ruoso <dan...@ruoso.com> wrote:
> Em Ter, 2009-03-31 às 22:54 -0700, Jon Lang escreveu:
>> Yes, I know that there is no S08.  I'm working on writing one, and I'd
>> like some feedback to help me do so.
>
> ++
>
>> My draft is going to be about Signatures and Captures.  Thus, my questions:
>> Invocants:
>
> The concept of "invocant" only exists in terms of syntax now. In runtime
> the invocant is simply the first positional argument. This simplifies
> things a lot.

I think you're confusing signatures with captures here.  Captures and
the arguments that they, well, capture, don't care about the invocant;
but signatures and the parameters that they define still do.

>> * Likewise, if I interpolate a signature with an invocant into another
>> signature (somewhere other than at the start), is this an error, or
>> will the invocant be silently converted into an ordinary positional
>> parameter?
>
> What does "interpolate a signature" mean?

...my bad.  For some reason, I made the opposite mistake: I thought
that it was possible to assemble a signature out of other signatures.

>> * Why are we using ";;" to denote the end of a multi function's
>> longname?
>
> Because a capture may have more than one dimension, which would be
> delimited by ";".

Note that I didn't propose ";" as the longname terminator.

>> * Can any required parameter be part of the longname, or are only
>> positional parameters allowed?  (I'm expecting the latter; but I'd
>> like confirmation.)
>
> I suspect you meant "named parameter" in place of "required parameter".

I meant both, actually: can required named parameters be part of the longname?

> For Perl 6.0.0, it is accepted that named parameters don't take part in
> multi dispatch.

OK.

>> * does the use of placeholder parameters interfere with the use of the
>> slurpy parameters normally provided by the default signature (i.e.,
>> *...@_ and *%_)?  I'm guessing not.
>
> Yes, it does. The default signature is the *default*. Having placeholder
> parameters imply defining a signature, one could argue that *...@_ and *%_
> are still part of that generated signature, but @_ certainly won't
> contain the values that were in the placeholder parameters.

...nor would I expect it to.  I'm just wondering if (@_, %_) _are_
still part of a placeholder-generated signature.  In short, is there a
way to access a slurpy array or hash in a block that uses placeholder
parameters?

-- 
Jonathan "Dataweaver" Lang

Reply via email to