> 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