Folks -
One thing I really like about Python is Generators (http://docs.python.org/tutorial/classes.html#generators). They allow code to provide a stream (iterator) interface where it's not easy to provide the interface explicitly. I.e., it would allow one to provide a stream interface to an arbitrary computation like:
gen := Generator on: [:yield| 3 to: 1 by: -1 do:[:i| yield value: i]]. gen next. "=>3" gen next. "=>2" gen next. "=>1" gen next. "=>nil"
This *ought* to be really simple to do in Smalltalk by using blocks and some voodoo in the execution engine. Has anyone ever done that?
Cheers, - Andreas