[squeak-dev] Re: Generators in Smalltalk?

Andreas Raab andreas.raab at gmx.de
Wed Feb 10 07:03:21 UTC 2010


Colin Putney wrote:
> Also, Stephen Pair posted an implementation here in December: 
> 
> http://n4.nabble.com/ANN-CoroutineReadStream-tt963004.html#a963004

Brilliant! That's the ticket! Once I got down the right path it's even 
simpler than that. I put a version of Generator into the inbox for 
people to play with and give feedback. With 5 methods total you get to 
do fun stuff like:

| gen max |
max := 10000000.
gen := Generator on:[:yield| Integer primesUpTo: max do: yield].
'Computing primes' displayProgressAt: Sensor cursorPoint
	from: 1 to: max during:[:bar| | prime |
		[prime := gen next] whileNotNil:[bar value: prime].
	].

I think we should add support for Generators. They are so incredibly 
useful where you have complex operations that you don't want to spend 
the upfront effort on to compute everything (like primes) before you can 
do some work with the results.

Cheers,
   - Andreas



More information about the Squeak-dev mailing list