On 15/05/05 22:48 +0100, Matthew Walton wrote: > . > > On 15 May 2005, at 16:17, Rob Kinyon wrote: > >Right now, P6 has $?SELF and I'm saying that instead of using $?SELF, > >we should use $self wherever $?SELF would be used. $_ is still the > >topic and would be the default invocant if you have .method($foo). > >What I'm saying is that you can have > > > >method ( Int foo ) { > > $self.otherMethod( foo ); > >} > > > >and it will DWIM. Just like Java, C++, and Javascript. (Yes, I'm using > >JS as part of my argument.) > > > >If you have > >method ( Int foo ) { > > .otherMethod( foo ); > >} > > > >That would be > >method ( Int foo ) { > > $_.otherMethod( foo ); > >} > > > >Just like expected. > > My ill-considered and probably not very understandable thoughts: > > - As has been said with great eloquence earlier, virtually everywhere > in Perl 6 so far when you leave something out the default is taken to > be $_ > - As has also been said, elsewhere, internal consistency is a great > feature of a language people are trying to learn > > Given these two points, in my mind anything other than making > > .method($foo); > > mean > > $_.method($foo); > > is utterly absurd. If it means $_.method($foo) outside a method > definition and $?SELF.method($foo) inside one then I think it's a > reasonable expectation for people learning Perl 6 to throw up their > hands and start complaining loudly (and possibly going back to their > previous language of choice).
I don't think that is what Rob is saying at all. My read: .method($foo); always means: $_.method($foo); and $self.method($foo); always means $?SELF.method($foo); The former is consistent with the rest of Perl 6, and the latter is consistent with most of Perl 5 OO code in the wild. My only stance is that, given there is no clearly sexy solution, at least I can take `$self` home to meet my Mom. Cheers, Brian