> What is this "way back" you repeatedly mention?
>
> If it is having a name for the invocant, then there has always been one:
>
>     method foo ($self:) {
>         for (1..10) {
>             $self.method(.sqrt)
>         }
>     }
>
> Or, well, two:
>
>     method foo {
>         my $self := $_;
>         ...
>     }
>
> Three, even:
>
>     method foo {
>         my $self = \$_;
>         for (1..10) {
>             $$self.method(.sqrt)
>         }
>     }

By this reasoning - why have a shortcut to any of the invocants at all?  This 
thread has headed in the direction of finding a way to figure out how to call 
methods on the invocant without using the signatures name.  On a method call 
without a signature and without invoking Perl5isms there would not be a "way 
back" to the invocant once you enter nested block.

The point of all of this discussion is to not have to set $self to anything.  
The argument for .meth as opposed to $self.meth of $_.meth was that .meth was 
clear enough to mean the current topic and was a nice huffmanization. 

>     method foo ($self:) {
>         for (1..10) {
>             $self.method(.sqrt)
>         }
>     }

That works great - so long as I specify the signature.  I'm lazy, I don't want 
to type the signature all the time.  Consider:

method foo {
   for 1 .. 10 {
      $^.method(.sqrt);
   }
}

Still pretty readable.  I kind of like $^1 too which seems to behave like 
$^variable quite nicely.  I guess that $^1 should actually be $^0 so that we 
are properly zero indexed.  At this point - it sort of looks like Perl5's 
$_[0] except now $^0 is just an alias and and it gets all of the attributes 
given by the signature (should a signature be given) - plus we don't have to 
deal with the [EMAIL PROTECTED] array.

> Or, well, two:
>
>     method foo {
>         my $self := $_;
>         ...
>     }

If I didn't like typing the signature - why would I want to type all of that 
code to bind the variable?  I'm lazy.  The signature wouldv'e been shorter.  
That looks Perl5ish.

> Three, even:

Same argument as the last with a different "aliasing."

Yes, I know there "can be" a "way back."  In this thread, none of the examples 
give one using existing Perl 6 syntax.  They are all proposing new ways.  
This is one more.

Paul

Reply via email to