Hi, Joshua Gatcomb wrote: > On 5/4/05, Luke Palmer <[EMAIL PROTECTED]> wrote: >> On 5/4/05, Joshua Gatcomb <[EMAIL PROTECTED]> wrote: >> > So without asking for S17 in its entirety to be written, is it >> > possible to get a synopsis of how p6 will do coroutines? I ask >> > because after reading Dan's "What the heck is: a coroutine", it is >> > clear there is more than one way to dictate behavior. >> >> Well, one way is to use generating functions: >> >> my @a = gather { >> for 1..10 { >> say; >> take; >> } >> } > > Ok - this isn't what I was expecting at all. That doesn't make it a > bad thing. Given something that looks a lot more like a typical > coroutine:
sub example(...) { my $index = 0; my @a := gather { ...coroutine code here, use "take" to yield a result...; }; return { @a[$index++] }; } my $gen = example(...); say $gen(); say $gen(); say $gen(); (FWIW, I like something along the lines of "is coroutine" and then "yield" to yield a result, too, but I don't have a strong opinion on this.) --Ingo -- Linux, the choice of a GNU | Row, row, row your bits, gently down the generation on a dual AMD | stream... Athlon! |