Scott Bronson wrote:
> On Wed, 2004-06-30 at 18:41, Luke Palmer wrote:
> > Larry didn't go for it. Note, we already have an operator that puts
> > its left side in void context and evaluates it before its right one:
> > we call it C<;>.
>
> But C<;> requires a surrounding do block, as you noted. I'm
> disappointed that Larry didn't go for it. To my eyes, C<then> really
> increases readability.
All's fair if you predeclare:
sub infix:then (&first, &last) {
&first();
return &last();
}
The only problem I see with this solution is that I don't think that you
can pass individual commands into code variables:
pray_to $_ then sacrifice <$virgin> for @evil_gods;
would be wrong, but
{pray_to $_} then {sacrifice <$virgin>} for @evil_gods;
would work. Am I right about this, or does perl 6 let you pass simple
statements as code parameters? If the former, is there a way to tell it
to do the latter?
For the record, I was mentally parsing this example as:
pray_to $_;
sacrifice <$virgin> for @evil_gods;
rather than:
{pray_to $_; sacrifice <$virgin>} for @evil_gods;
The precedence of C<then> isn't very intuitive to me.
=====
Jonathan "Dataweaver" Lang
__________________________________
Do you Yahoo!?
Yahoo! Mail is new and improved - Check it out!
http://promotions.yahoo.com/new_mail