[squeak-dev] Re: Generators in Smalltalk?

Lukas Renggli renggli at gmail.com
Wed Feb 10 08:22:17 UTC 2010


On 10 February 2010 08:49, Andreas Raab <andreas.raab at gmx.de> wrote:
> Lukas Renggli wrote:
>>
>> http://source.lukas-renggli.ch/continuations/Generator-lr.3.mcz
>
> Interesting, thanks. I notice you have Generator>>reset and Generator>>fork
> which are definitely useful, but no Generator>>close? The latter allowing to
> execute any unwind blocks associated with the generator, say:
>
> gen := Generator on:[:yield| | fs |
>        [fs := FileStream readOnlyFileNamed: 'foo.bar'.
>        [fs atEnd] whileFalse:[yield value: fs nextLine]]
>                ensure:[fs close]
> ].
>
> Unless a close operation is provided, the file in the above will not be
> closed properly.

I've fixed that. There could be more bugs, as I've never used them
beyond the anecdotical examples showing off runtime reflection. I
never saw a practical use of Generators in Smalltalk.

Lukas

-- 
Lukas Renggli
http://www.lukas-renggli.ch



More information about the Squeak-dev mailing list