Larry on p6i?  I didn't expect some kind of Perlish Exposition!

On Fri, Jul 08, 2005 at 11:18:01AM -0700, Larry Wall wrote:
> Even in the absence of a hash representation, the brute force approach
> will often beat the finessed approach for a small number of arguments,

Well-taken.  (Not that the rest isn't, but the danger of misoptimization
is always with us.)  More commentary may be forthcoming soon.

Incidentally, under the "appropriate amount of fun" topic: An
interesting Parrot/Perl6 intersection problem with named parameters
is the representation of <==.  Given

    foo('a' => 1) <== ('b' => 2, ...)

It's necessary to _somehow_ pass the first pair distinctly from the
second pair without knowing the _name_ of the user-declared slurpy
parameter of &foo.  I suppose the Perl 6 compiler will have to settle
on a pseudo-parameter-name that will be used to represent a <== style
list.  Assuming that name is '_', the above call could be compiled to:

    foo('a' => 1, '_' => ('b' => 2, ...))

or something similar.  It would then be the responsibility of a Perl 6
function preamble to bind the contents of the '_' argument, if any, to
the user-declared slurpy parameter, if any.  Non-Perl6 functions would
perhaps see the '_' parameter and have to deal with it.

> : Therefore, it's possible that there will
> : eventually no longer be a single loop through the parameters.  The
> : concept of strict temporal ordering might thus be lost,
> 
> Why would strict temporal order be needed for mere binding?
>
> : and the idea of "optional parameter up to this point" might also be lost.
> 
> I don't grok that part.

It's a Parrot calling convention API thing.  Leo proposed (and
implemented) a highly time-bound feature for subroutines to learn
whether optional parameters were passed in or not.  It more or less
lets the user request: "Store >here< the number of optional parameters
that _so_far_ have been filled in _since_ the last time I asked".
That API requires either strict left-to-right binding or an amazing
simulation thereof.

I've since requested an API that doesn't impose even a simulation of
left-to-right processing among parameters: "Store >here< whether the
caller passed a value for >that< specific optional parameter."

> : So apparently I'm going to have to figure out exactly how we support
> : named parameters or this won't get settled.  Fine....
> 
> Mmm, have the appropriate amount of fun...  :-)

/me giggles madly
-- 
Chip Salzenberg <[EMAIL PROTECTED]>

Reply via email to