On 4/16/02 10:22 AM, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> claimed:

> Eh, no. You got it backwards. It's not that you need a space before
> a control block, it is that "If you put a space before a {, it *IS*
> a control block".
> 
> It's the space that determines what follows is a control block.

You're right. Larry writes in Apo4:

    Therefore, we will make the rule that a left curly that has whitespace
    in front of it will never be interpreted as a subscript in Perl 6.

> It's not that it isn't necessary. It's forbidden. Unlike in C, awk,
> Java, Pascal, or even in the language of the whitespace, Python. Any
> language I can remember programming in in the last 2 decades allows
> optional whitespace between the aggregate and the index, without
> parsing things differently.

Yes, and Larry argues that this 99% of the time, people leave the whitespace
out of the aggregate and the index. This appears to me to be true, from the
code I have read and written.

> That's a syntax error. You've some stuff in void context, and then
> you're assigning something to a block.

Right. Next time I'll check the refs before I open my big gob.

> The problem is, because the ()'s are dropped, the parser cannot know
> where the control block starts, hence the new rule "any opening brace
> following whitespace will be a block".

Note, however, that you can still use the ()'s if you want, "just for old
times' sake."

> Having to *add* code isn't actually making a shortcut, is it? ;-)

For me, it makes it much more readable. If I start writing code with hashes
as long and ugly as the example originally reposted, it's time to start
refactoring. I'd probably look to turn such a complex beast into an object,
instead, and create accessors to simplify access.

Regards,

David

-- 
David Wheeler                                     AIM: dwTheory
[EMAIL PROTECTED]                                 ICQ: 15726394
http://david.wheeler.net/                      Yahoo!: dew7e
                                               Jabber: [EMAIL PROTECTED]


Reply via email to