Lists Home |
Date Index |
> I would add, though, that Uche's article and references describing
> generators has prompted me to by my first Python book; I tried grokking
> Stackless but gave up after the old noggin started throwing sparks like the
> Star Trek bridge deck during a Klingon battle.
Indeed, generators are perhaps the most merciful introduction to continuations
for a programmer of procedural heritage (as mine was). I first ran into
continuations in all their glory in Scheme, and I think the two months of my
adult life about which I can remember no details must be from the period where
my brain was recovering from the resultant explosion.
I never *really* grokked continuations until I played with Stackless Python,
and boy did I regret missing them for so many years. Then Python decided to
take up just the generator speciaization of continuations, and I was
disapointed until I learned two things:
1) Generators offer an almost guaranteed "lightbulb" moment for a decently
trained programmer (I would measure that for this discussion as one who has
ever had to code a variety of tree-traversal routines)
2) Once you start to really feel the generator zen, you find that you can do
most of the cool things that continuations offer using generators along.
David Mertz has some nice articles on IBM dW about simulating microthreads and
coroutines using generators.
Uche Ogbuji Fourthought, Inc.
http://uche.ogbuji.net http://4Suite.org http://fourthought.com
Use internal references in XML vocabularies - http://www-106.ibm.com/developerw
Universal Business Language (UBL) - http://www-106.ibm.com/developerworks/xml/l
EXSLT by example - http://www-106.ibm.com/developerworks/library/x-exslt.html
The worry about program wizards - http://www.adtmag.com/article.asp?id=7238
Use rdf:about and rdf:ID effectively in RDF/XML - http://www-106.ibm.com/develo
Keep context straight in XSLT - http://www-106.ibm.com/developerworks/xml/libra
Using SAX for Proper XML Output - http://www.xml.com/pub/a/2003/03/12/py-xml.ht
SAX filters for flexible processing - http://www-106.ibm.com/developerworks/xml