HaloO,

Luke Palmer wrote:
I vaguely recall that we went over this already, but I forgot the
conclusion if we did.

I have a proposal about block owner and block topic pending.
But I guess no one noticed it, ...


In Damian and Larry's talk here at OSCON, I saw the example:

    if foo() -> $foo {
        # use $foo
    }

How can that possibly work?  If a bare closure { } is equivalent to ->
?$_ is rw { }, then the normal:

    if foo() {...}

Turns into:

    if foo() -> ?$_ is rw { }

And every if topicalizes! I'm sure we don't want that.

I think of -> as the binder of the referential environment of the
block/closure that follows. Without it the non block-owning special
form if doesn't touch $_. It just flows into the block from outside.
The other forms like for, while, given, etc. should behave the same.

I would also require an explicit '-> $_ is rw' if you want the block
to write to the caller's environment. Perhaps '-> :rw' is an abbreviation
for a rw topic. This is the same logic as \:rw for rw ref creation.
I like the very nicely huffmanized rw. It's short if you need/want it.
--
$TSa.greeting := "HaloO"; # mind the echo!

Reply via email to