I have zero mileage with Python generators and I don't teach CS. But my understanding is:
Sometimes you have a problem where it is nicer to express the solution as two independent pieces: a producer and a consumer that run concurrently. ("Concurrently" doesn't necessarily mean actually in parallel, as with an OS thread or process. In fact it's often simpler if it _doesn't_ mean that.) In Racket you might run the producer and consumer in different threads that talk over a channel. The producer does `channel-put` instead of `yield`, and the consumer does `channel-get` or `sync`. If you squint, it's all variations or specializations of continuations: http://matt.might.net/articles/programming-with-continuations--exceptions-backtracking-search-threads-generators-coroutines/ -- 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.