How about this?:
On Tue, Feb 19, 2019, 9:57 PM Kees-Jochem Wehrmeijer <henc...@gmail.com> wrote: > Basically when I call the function throw. So e.g. > > (define mygenerator (generator () > (with-handlers ([exn:fail? (lambda (e) 42)]) > (yield 1) > (yield 2) > (yield 3)))) > > > (mygenerator) > 1 > > (throw mygenerator) > 42 > (define (mygenerator [throw? #f]) (if throw? 42 (begin (yield 1)(yield 2)(yield 3))) > (mygenerator) 1 > (mygenerator 'throw) 42 What sort of thing would you use this technique for? You aren't actually throwing anything, because you trap and discard the exception before returning a value normally. > On Tue, Feb 19, 2019 at 6:20 PM David Storrs <david.sto...@gmail.com> > wrote: > >> Under what circumstances would you want it to throw? When the generator >> runs out, or...? >> >> On Tue, Feb 19, 2019, 3:59 PM Kees-Jochem Wehrmeijer <henc...@gmail.com> >> wrote: >> >>> Hi, >>> >>> Python allows to call a .throw() method on a generator. I was wondering >>> if Racket generators have a similar feature. From the docs it doesn't seem >>> to have that. One way I could see around this is to set a parameter and >>> then check for that parameter in the generator and raise an exception based >>> on that. I could imagine writing a macro, e.g. yield-except, that does that >>> check. The disadvantage would be that users would have to remember to use >>> yield-except instead of regular yield in the generator. >>> >>> Are there any other clever workarounds that I'm missing? >>> >>> Thanks, >>> Kees >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Racket Users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to racket-users+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.