Em Sex, 2009-01-02 às 08:34 -0300, Daniel Ruoso escreveu: > token routine_def:<coro> {...}
Actually, I was just looking at STD, and the correct token would be token routine_declarator:coro { <sym> <routine_def> } I was also looking at the spec files, and I realized that DRAFT S17 mentions coroutines, but its definition is a bit different then the one I suggested, and the example poses a good reason: coro dbl { yield $_ * 2; yield $_; }; (1..4).map:{ dbl($_) } # should result in 2 2 6 4 This example suggests that it will not install an alias in the caller scope, but the code object itself stores its state. The other difference is that falling out of a coro makes it restart immediatly without returning any value (this one is a bit weird, I'd expect it to return the last statement on the routine as well). But one way or another yield (yes, I wrote it wrong in the previous post) is still implemented as a control exception that is caught by the implicit CONTROL block of the coro. daniel