please don't send me more letters !!!

On 2020-06-23, at 23:39, Tobias Pape <Das.Linux@gmx.de> wrote:


On 23.06.2020, at 20:28, Nicolas Cellier <nicolas.cellier.aka.nice@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@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