A question about the posibility of raise-yield in Python

Дамјан Георгиевски gdamjan at gmail.com
Tue Jul 6 14:56:37 EDT 2010


>> > I'm writing this as a complete newbie (on the issue), so don't be
>> > surprised if it's the stupidest idea ever.
>>
>> > I was wondering if there was ever a discusision in the python
>> > community on a 'raise-yield' kind-of combined expression. I'd like
>> > to know if it was proposed/rejected/discussed/not-decided yet??
>>
>> Recently (ok, several hours ago) I've come up to Greenlets [1] and it
>> seems they implement exactly what I was asking for, in a C
>> extension!!
>>
>> It's too bad that Python doesn't support this by default and many
>> libraries won't make use of it by default. Gevent [2] for example,
>> has to monkey-patch Python's socket, time.sleep and other modules so
>> that things like urllib work with it.
>>
>> I'll continue to read now.
> 
> Ah, if I had seen your original post I probably could have pointed you
> to some good reading right away.  What you've described is called a
> continuation, and is natively supported by some languages (like
> Scheme).  It's usually not done with exceptions, though.  In Scheme
> it's a special form that looks like an ordinary function call, but you
> can "return" from the call any number of times.

I thought they were called coroutines?

Anyway, here's the Lua implementation of coroutines. It's basically a 
yield but it will return back several frames.

http://lua-users.org/wiki/CoroutinesTutorial


-- 
дамјан ((( http://damjan.softver.org.mk/ )))

Today we create the legacy of tomorrow.




More information about the Python-list mailing list