On Wed, Nov 19, 2003 at 09:03:38AM -0500, Austin Hastings wrote:
: 
: 
: > -----Original Message-----
: > From: Joe Gottman [mailto:[EMAIL PROTECTED]
: > Sent: Tuesday, November 18, 2003 9:58 PM
: > To: Perl6
: > Subject: Re: [perl] RE: s/// in string context should return the string
: > 
: > 
: > ----- Original Message ----- 
: > From: "Austin Hastings" <[EMAIL PROTECTED]>
: > To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
: > Sent: Tuesday, November 18, 2003 3:04 PM
: > Subject: [perl] RE: s/// in string context should return the string
: > 
: > 
: > > As a "Bvalue" where possible, so they can cascade and nest.
: > 
: >    Excuse me.  I know enough C++ to know the difference between an lvalue
: > and an rvalue, but what the heck is a BValue?
: 
: Something which could be Bound to another rex. Vis (p5):
: 
:  $x =~ s/foo/bar/ =~ s/moo/goo/;
: 
: Might as well make them chainable.

Sigh.  There's no =~ operator in Perl 6.

And it's not at all clear that ~~ should be associative.  In fact,
it's not at all clear that ~~, a symmetrical operator, should bind
to any kind of mutator (using the term loosely).  Operations that
have side effects are inherently asymmetrical and should probably be
bound with . in any event.  And that does associate left to right,
though there are no guarantees that the returned value of a method is
the left one.  The only mutator operator that currently does that is
"but".  So maybe it could be something like:

    $x but s/foo/bar/ but s/moo/goo/;

We'd have to make "property" context recognize mutators for that to
work, though.  I'm more inclined to make

    $x.s/foo/bar/.s/moo/goo/;

work somehow.  Basically .s would be a postfix quote macro, or some such.
I'm not sure I want to propose macromethods just yet.  The compile-time
vs run-time typing and scoping issues would be hairy.

Having said all that about ~~ vs mutators, I note two interesting
facts-in-waiting:
    1) The ~~ operator likes to match using regexes.
    2) We've defined any regex to be a potential mutator if it uses <cut>.

Ah, consistency...

Larry

Reply via email to