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!