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