On Tue, May 04, 2004 at 04:14:44PM -0600, Luke Palmer wrote:
> Dov Wasserman writes:
> > Since in the rest of Perl 6, the '~' operator involves string
> > representation, perhaps the standard +$foo marker should really be ~$foo:
> > i.e., $foo only has a (string) name, not a numeric position. Thus ~$foo
> > would mean exactly what +$foo currently means: $foo may only be passed by
> > name, and it is optional.
>
> Hmm... I'm quite sure that I like ~ better than + for mnemonic purposes.
I agree.
> > Declaring a parameter to be named-only would now require a different syntax.
> > For your parametric perusal pleasure:
> >
> > 1. sub foo($req1, ?$opt1, ~$optNamedOnly, ~$reqNamedOnly is req) {...};
> > 2. sub foo($req1, ?$opt1, ~$optNamedOnly, +$reqNamedOnly) {...};
> > 3. sub foo($req1, ?$opt1, ~?$optNamedOnly, ~$reqNamedOnly) {...};
> > 4. sub foo($req1, ?$opt1, $optNamedOnly is named, $reqNamedOnly is named
> > is req) {...};
>
> I'm for option 1.
[ well-reasoned ... um ... reasons elided ]
> On the other hand, Perl's always been a purist in impurity. There are
> more subtle reasons for wanting to add a required named parameter.
> Adding the => syntax to a method call, while the parameter isn't
> formally named, can be a useful language building idiom. That's why I
> support the C<is req[uired]?> trait. But making a special character
> sequence for it will end up confusing people, being mishuffmanized.
I agree here too.
-Scott
--
Jonathan Scott Duff
[EMAIL PROTECTED]