[squeak-dev] generators

Tobias Pape Das.Linux at gmx.de
Tue Jun 23 20:38:57 UTC 2020


> On 23.06.2020, at 20:28, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> wrote:
> 
> +1 nice!

yeah, nice addition!
I'd suggest to keep #yield: around, tho. 
I think it is kind-of tied to the Generator idea (viz. Python, JavaScript, C#)..

Best regards
	-Tobias

> 
> Le mar. 23 juin 2020 à 20:23, Eliot Miranda <eliot.miranda at gmail.com> a écrit :
> Hi All,
> 
>     I juts had occasion to use generators in anger for the first time.  I was trying to fnd out why a clone of a prse tree was reporting that it was not the same tree.  Generators made enumerating all nodes in each tree together trivial:
> 
> | them |
> them := Generator on: [:g| newTree nodesDo: [:n| g yield: n]].
> parseTree nodesDo:
> 	[:n| | twin |
> 	twin := them next.
> 	(n isSameAs: twin) ifFalse:
> 		[self halt]]
> 
> My message though comes from noticing that generators yield their values via next, so why not use nextPut: instead of yield: ?
> 
> e.g. I think this is better:
> 
> | them |
> them := Generator on: [:g| newTree nodesDo: [:n| g nextPut: n]].
> parseTree nodesDo:
> 	[:n| | twin |
> 	twin := them next.
> 	(n isSameAs: twin) ifFalse:
> 		[self halt]]
> 
> _,,,^..^,,,_
> best, Eliot
> 
> 




More information about the Squeak-dev mailing list